页面图片懒加载

懒加载

         定义: 当我们碰到长网页有很多图片时,我们会采用先加载出现在视口内的几张图片,

         当滚动条滚动到相应图片的位置时才去加载别的图片。这种延迟加载的方式我们就称之为懒加载。

         优点:提升用户体验 减轻服务器压力

         实现原理 : 就是当图片距离浏览器顶部的高度---即getBoundingClientRect().top <= 视口高度  window.innerHeight

 

<style>
      img {
        display: block;
        width: 800px;
        height: 600px;
        margin-bottom: 30px;
      }
    </style>

 <img src="" alt="" data-img="./img/1.jpg" class="lazyImg" />
    <img src="" alt="" data-img="./img/2.jpg" class="lazyImg" />
    <img src="" alt="" data-img="./img/3.jpg" class="lazyImg" />
    <img src="" alt="" data-img="./img/4.jpg" class="lazyImg" />
    <img src="" alt="" data-img="./img/5.jpg" class="lazyImg" />
    <img src="" alt="" data-img="./img/6.jpg" class="lazyImg" />
<script>
      lazyLoad();
      // 懒加载函数
      function lazyLoad() {
        let lazyImg = document.querySelectorAll(".lazyImg");
        lazyImg.forEach((item) => {
          if (isShow(item)) {
            item.src = item.dataset.img;
            // 当加载完成后去除懒加载列表
            item.classList.remove("lazyImg");
          }
        });
      }
      window.addEventListener("scroll", lazyLoad);
      // 判断 是否达到显示条件
      function isShow(item) {
        return item.getBoundingClientRect().top <= window.innerHeight; // 查看效果 可以在后面-180
      }
    </script>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值