图片延迟加载通过 Intersection Observer 监听元素进入视口,将 data-src 赋值给 src 实现按需加载,提升性能。

图片延迟加载(Lazy Loading)是一种优化网页性能的技术,它让图片在用户滚动到其位置时才开始加载,而不是页面一打开就加载所有图片。这种技术能显著减少初始页面加载时间、降低带宽消耗,提升用户体验,尤其适用于图片较多的长页面。
懒加载的核心思想是:将 img 标签的 src 属性暂时移除或替换为占位图,把真实的图片地址存放在自定义属性中(如 data-src)。当图片元素进入视口(可视区域)时,再将 data-src 的值赋给 src,触发图片加载。
关键步骤:现代浏览器推荐使用 Intersection Observer,它比传统的监听 scroll 事件更高效,不会造成频繁重排重绘。
示例代码:
立即学习“Java免费学习笔记(深入)”;
const images = document.querySelectorAll('img[data-src]');
const imageObserver = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
img.removeAttribute('data-src');
observer.unobserve(img); // 加载后停止观察
}
});
});
images.forEach(img => {
imageObserver.observe(img);
});
HTML 结构示例:
<img alt="示例图片" />
如果需要支持较老的浏览器(如 IE),可以结合 scroll 事件监听作为降级方案,或者引入 polyfill。
简单降级方法:
现代浏览器已支持原生懒加载:
<img src="image.jpg" loading="lazy" alt="图片" />
这种方式无需 JavaScript,但兼容性需注意(不支持 IE)。
基本上就这些。根据项目需求选择合适的方式,优先推荐 Intersection Observer 或原生 lazy 属性。不复杂但容易忽略细节。
以上就是JavaScript懒加载_图片延迟加载的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号