美文网首页
vue.js下图片懒加载

vue.js下图片懒加载

作者: 管子先生 | 来源:发表于2019-02-20 17:13 被阅读0次
    HTML
    <img src="http://temp.im/110x110" data-src="src" alt="" >
    
    JS
    watch: {
      $route: {
          handler(val, oldVal) {
            // 监听组件dom加载完成
            this.$nextTick(() => {
              // 加载首屏
              this.imgLazyLoading()
              window.addEventListener('scroll', () => {
                this.imgLazyLoading()
              })
            })
          },
          deep: true
        }
      },
      methods: {
        /**
         * 全局图片懒加载
         */
        imgLazyLoading() {
          const seeHeight = document.documentElement.clientHeight // 获取可视区域高度
          const scrollTop = document.documentElement.scrollTop || document.body.scrollTop // 获取已经滑动区域的高度
          document.querySelectorAll('img').forEach(el => {
            if (el.attributes['data-src'] && el.src !== el.attributes['data-src'].nodeValue) {
              if (el.offsetTop < seeHeight + scrollTop - 100) {
                var img = document.createElement('img')
                const src = el.src
                img.src = el.attributes['data-src'].nodeValue
                img.onload = (e) => {
                  el.src = el.attributes['data-src'].nodeValue
                }
                img.onerror = (e) => {
                  el.attributes['data-src'].nodeValue = src
                }
              }
            }
          })
        }
      }
    

    相关文章

      网友评论

          本文标题:vue.js下图片懒加载

          本文链接:https://www.haomeiwen.com/subject/oznhyqtx.html