判断传入的图片是否加载完成

module.exports = (imageArr = [], callback) => {
  let imageLoadNum = 0;

  imageArr.forEach(item => {
    const image = new Image();

    image.src = item.image;
    if (image.complete) {
      imageLoadNum++;
      if (imageLoadNum === imageArr.length && callback) {
        callback();
      }
    } else {
      image.onload = function() {
        imageLoadNum++;
        if (imageLoadNum === imageArr.length && callback) {
          callback();
        }
      };
    }
  });
};
image.complete 代表当前图片有缓存,这个时候不会触发onload事件

猜你喜欢

转载自www.cnblogs.com/kugeliu/p/9477021.html