data-img是一个不错的选择。建议更新一个
<!-- HTML 部分:用 data-img 存真实图片地址,src 放占位图 -->
<img class="lazy-img"
src="placeholder.png" <!-- 页面初始加载的占位图(小图/纯色图) -->
data-img="real-image-1.jpg" <!-- 真实需要加载的图片地址,存在 data-img 里 -->
alt="风景">
<img class="lazy-img"
src="placeholder.png"
data-img="real-image-2.jpg"
alt="人物">
<!-- JavaScript 部分:监听滚动,读取 data-img 并加载图片 -->
<script>
// 获取所有需要懒加载的图片
const lazyImgs = document.querySelectorAll('.lazy-img');
// 监听页面滚动事件
window.addEventListener('scroll', checkLazyLoad);
// 页面初始加载时也检查一次
checkLazyLoad();
function checkLazyLoad() {
lazyImgs.forEach(img => {
// 当图片进入视口时
if (img.getBoundingClientRect().top < window.innerHeight) {
// 读取 data-img 里的真实地址,赋值给 src,触发图片加载
img.src = img.dataset.img;
// 加载完成后移除监听(避免重复执行)
img.classList.remove('lazy-img');
}
});
}
</script>