Execute code only after all images have been loaded in JavaScript
Today, we’ll show you how to execute code only after all images have been loaded in JavaScript.
Checkout more articles on JavaScript
Sometimes, we need to check if all images are loaded or not in the browser. There is no default method to check when all images have been loaded in Javascript. So here we explain a simple way to know simultaneously when all images are loaded in Browser.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <script> var imgList = document.images; var len = imgList.length; var imgCounter = 0; [].forEach.call(imgList, function (img) { if (img.complete) { incrementImgCounter(); } else { img.addEventListener('load', incrementImgCounter, false); } }); function incrementImgCounter() { imgCounter++; if (imgCounter === len) { console.log('All images loaded!'); } } </script> |
How it works
- Load all the images in a variable from the document. (You can also use the querySelector to get the list of the images from the particular div)
- Loop through these images.
- Add a listener for the
load
event on each of these images to run theincrementImgCounter
function. - The
incrementImgCounter
will increment the counter - If the counter has reached the length of images, that means they’re all loaded
Note: You can also handle the error
event listener for broken images.
I hope you find this article helpful.
Thank you for reading. Happy Coding..!! 🙂