美文网首页
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
            }
          }
        }
      })
    }
  }

相关文章

  • 图片的懒加载和预加载

    懒加载:又称延迟加载,需要等到某个情况下才加载,相对可以缓解服务器压力。 实现原理:以懒加载图片为例,当加载图片较...

  • 项目优化

    图片懒加载,数据懒加载, 路由懒加载 1.图片懒加载原理 1.1 开始时 不设置src属性 1.2 图片在可视区域...

  • vue.js下图片懒加载

    HTML JS

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • 图片懒加载

    懒加载与预加载的基本概念。 懒加载也叫延迟加载:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片。 预...

  • canvas图片懒加载

    整理一下从别处学来的一种图片懒加载的方式。 什么是图片懒加载,简单来说就是在web应用中,图片不会一次性全部加载,...

  • JS图片懒加载

    给大家分享一下JS的图片懒加载

  • 图片懒加载

    图片懒加载 图片懒加载在一些图片密集型的网站中运用比较多,通过图片懒加载可以让一些不可视的图片不去加载,避免一次性...

  • js 实现图片懒加载

    一、懒加载 懒加载也叫延迟加载,Js中图片的延迟加载,延迟图片需要符合某些条件时才加载;对于图片过多的页面,为了加...

  • 图片懒加载和预加载

    图片懒加载的原理是什么? 首先明白为什么要懒加载: 懒加载即延迟,对于图片过多的页面,为了加快页面加载速度,我们需...

网友评论

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

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