Web 图片懒加载
解决思路
- 利用
IntersectionObserver
- 监听滚动,利用
getBoundingClientRect
进行判断 - 浏览器原生
loading="lazy"
getBoundingClientRect
使用 getBoundingClientRect
方法可以获取元素的尺寸和位置。在页面滚动时,可以计算所有的图片元素,获取元素的距离视图的高度,和视图的高度。如果视图高度大于距离高度,则将懒加载的地址放到 src 中
img.getBoundingClientRect().top < window.innerHeigh
IntersectionObserver
IntersectionObserver 当元素进入到可视视图时就会触发回调
const imgIntersectionObserver = new IntersectionObserver((entries) => { for (let img of entries) { if(img.isIntersecting) { img.src = img.dataset.src imgIntersectionObserver .unobserve(img) } } }) for (let img of imgList) { imgIntersectionObserver .observe(img) }
原生支持
<img loading="lazy" src="" />
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 瀑布流简单实现
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论