js判断div内所有图片是否加载完成

171 阅读1分钟

某些时候,我们需要监听图片加载完成之后做事件处理,比如场景:图片文件太大的时候,从服务器获取加载很慢,会出现长时间图片窗口空白的情况下,那么我们需要给图片增加一个loading状态,提示用户图片正在加载,并且监听图片是否加载完成,当加载完成之后,关闭loading状态

   const allImagesLoaded =()=> {
      let swDom = document.getElementById(this.config.id + 'sw') // 容器
      let imgDom = swDom.querySelectorAll('.img') // 获取所有图片标签
      const P = Array.prototype.slice.call(imgDom).map((node) => {
        return new Promise((resolve, reject) => {
          const img = new Image()
          img.src = node.getAttribute('data-src') //图片路径
          img.onload = () => {
            resolve(node)
          }
        })
      })
      Promise.all(P).then((res) => {
        console.log('所有图片加载完成')
        this.calculateSwiperHeight()
      })
    }