yannstatic/_includes/scripts/utils/imagesLoad.js
2024-10-31 20:18:37 +01:00

29 lines
785 B
JavaScript

(function() {
window.imagesLoad = function(images) {
images = images || document.getElementsByTagName('img');
var imagesCount = images.length, loadedCount = 0, image;
var i, j, loaded = false, cbs = [];
imagesCount < 1 && (loaded = true);
for (i = 0; i < imagesCount; i++) {
image = images[i];
image.complete ? handleImageLoad() : image.addEventListener('load', handleImageLoad);
}
function handleImageLoad() {
loadedCount++;
if (loadedCount === imagesCount) {
loaded = true;
if (cbs.length > 0) {
for (j = 0; j < cbs.length; j++) {
cbs[j]();
}
}
}
}
return {
then: function(cb) {
cb && (loaded ? cb() : (cbs.push(cb)));
}
};
};
})();