图片懒加载

原理: 先将图片的真实地址存储在自定义属性上面,所有图片的src设置一个默认的占位符,页面滚动时判断这些图片是否达到了可视范围之内,达到了就将这些图片的真实地址放入到src,浏览器会自动加载图片

html

 <ul>
    <li><img src="" data-trueSrc="./img/1.jpg" alt=""></li>
    <li><img src="" data-trueSrc="./img/2.jpg" alt=""></li>
    <li><img src="" data-trueSrc="./img/3.jpg" alt=""></li>
    <li><img src="" data-trueSrc="./img/4.jpg" alt=""></li>
    <li><img src="" data-trueSrc="./img/1.jpg" alt=""></li>
    <li><img src="" data-trueSrc="./img/2.jpg" alt=""></li>
    <li><img src="" data-trueSrc="./img/3.jpg" alt=""></li>
    <li><img src="" data-trueSrc="./img/4.jpg" alt=""></li>
  </ul>

js

<script>
    // 在浏览器的范围可视范围之内的图显示出来
    var imgs = document.images
    var curIndex = 0
    function showImg() {
      // 已经加载过得不需要再处理
      for(var i=curIndex; i<imgs.length; i++ ){
        console.log(imgs[i].offsetTop)

        // 滚动出去的距离
        var dis = document.documentElement.scrollTop || document.body.scrollTop

        if(imgs[i].offsetTop < window.innerHeight + dis) {
          console.log('在浏览器里面')
          imgs[i].src = imgs[i].getAttribute('data-trueSrc')
          curIndex = i                // 下一次就从上一次结束的位置开始
        }
      }
    }

    showImg()

    window.onscroll = function() {
      showImg()
    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容