summaryrefslogtreecommitdiff
path: root/_includes/scripts/utils/imagesLoad.js
blob: 63a6bdfcc059a54bd239d5d29234fa216a162580 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(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)));
      }
    };
  };
})();