前端图片懒加载的实现方式

什么是图片懒加载:

前端图片懒加载是一种优化网页性能的技术,它可以延迟加载页面中的图片,直到用户即将看到它们为止。这样可以减少初始页面加载时需要下载的资源量,提高页面加载速度。

实现方式:
  1. 将图片的真实URL存储在自定义的属性中,例如data-src,而不是src属性。
  2. 页面初始加载时,所有图片的src属性设置为空或者一个占位图片的URL。
  3. 使用JavaScript监听滚动事件,当图片进入可视区域时,将data-src属性的值赋给src属性,从而触发图片的加载。
简单代码如下 :
<!-- HTML结构 -->
<img data-src="real-image-url.jpg" src="placeholder.jpg" class="lazy-load" alt="Lazy-loaded Image">

<!-- JavaScript代码 -->
<script>
  document.addEventListener("DOMContentLoaded", function() {
    const lazyImages = document.querySelectorAll(".lazy-load");

    function lazyLoad() {
      lazyImages.forEach(function(img) {
        if (isElementInViewport(img) && img.getAttribute("data-src")) {
          img.src = img.getAttribute("data-src");
          img.removeAttribute("data-src");
        }
      });
    }

    function isElementInViewport(el) {
      const rect = el.getBoundingClientRect();
      return (
        rect.top >= 0 &&
        rect.left >= 0 &&
        rect.top <= (window.innerHeight || document.documentElement.clientHeight)
      );
    }

    // 初次加载时触发一次懒加载
    lazyLoad();

    // 滚动事件触发懒加载
    window.addEventListener("scroll", lazyLoad);
  });
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值