温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CSS3如何实现图片懒加载

发布时间:2025-07-26 01:00:31 来源:亿速云 阅读:113 作者:小樊 栏目:编程语言

在CSS3中,没有直接的方法来实现图片懒加载。但是,你可以使用JavaScript(或者jQuery)与CSS3结合来实现这个功能。下面是一个简单的实现方法:

  1. 首先,在HTML中为图片添加一个占位符,例如一个小的低分辨率图片或者一个加载动画。
<img class="lazy-image" data-src="path/to/high-resolution-image.jpg" src="path/to/placeholder-image.jpg" alt="Description">

这里,我们使用data-src属性来存储高分辨率图片的路径,而src属性指向一个占位符图片。

  1. 接下来,编写CSS样式。为懒加载图片添加一个渐显效果,当图片加载完成时,渐显效果会消失。
.lazy-image {
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.lazy-image.loaded {
  opacity: 1;
}
  1. 最后,使用JavaScript(或jQuery)来实现懒加载功能。当用户滚动到图片附近时,将data-src属性的值赋给src属性,然后为图片添加loaded类,以触发渐显效果。
document.addEventListener("DOMContentLoaded", function() {
  var lazyImages = document.querySelectorAll(".lazy-image");

  function lazyLoad() {
    lazyImages.forEach(function(img) {
      if (img.getBoundingClientRect().top <= window.innerHeight && img.getBoundingClientRect().bottom >= 0 && getComputedStyle(img).display !== "none") {
        img.src = img.getAttribute("data-src");
        img.classList.add("loaded");
        img.removeAttribute("data-src");
      }
    });
  }

  window.addEventListener("scroll", lazyLoad);
  window.addEventListener("resize", lazyLoad);
  window.addEventListener("orientationchange", lazyLoad);

  lazyLoad(); // 初始加载时检查一次
});

这个示例中,我们为window对象添加了scrollresizeorientationchange事件监听器,以便在用户滚动、调整窗口大小或改变设备方向时触发懒加载功能。当页面加载完成时,也会执行一次lazyLoad函数,以确保初始状态下可见的图片能够正确加载。

现在,当用户滚动到图片附近时,占位符图片将被高分辨率图片替换,并带有渐显效果。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI