介绍
<>脚本//窗口绑定滚动事件
window.addEventListener(“滚动”,函数(){//遍历所有的img标签
.forEach Array.prototype.slice.apply (document.getElementsByTagName(李))((李)=> {
让img=li.getElementsByTagName (img) [0];//判断当前img是否出现在了视野中//判断当前img是否被加载过了
如果(checkShow (img) & & ! isLoaded (img)) {
loadImg (img);
}
})
});//判断img是否出现浏览器视野中
函数checkShow (img) {
让scrollTop=document.documentElement.scrollTop;//页面向上滚动的高度
让windowHeight=window.innerHeight;//浏览器自身高度
让offsetTop=img.offsetTop;//目标标签相对于文档的高度
返回(offsetTop> scrollTop & & offsetTop <(windowHeight + scrollTop));
}//判断是否已经加载过
函数isLoaded (img) {
返回img.getAttribute (src)===img.getAttribute (“data-src”);
}//加载图片
函数loadImg (img) {
img.setAttribute (“src”img.getAttribute (' data-src '));
}> 脚本
这篇文章主要介绍如何原生JS实现图片懒加载之页面性能优化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况。我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片,所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再加载更多的图片。这种加载图片的方式叫做图片懒加载,又叫做按需加载或图片的延时加载。这样做的好处是:1。可以加快页面首屏渲染的速度;2。节约用户的流量。
<强>一。实现思路强>
1。图片img标签自定义一个属性data-src来存放真实的地址。
2。当滚动页面时,检查所有的img标签,判断是否出现在事业中,如果出现在视野中,继续进行判断,看齐是否被加载过了,如果没有加载,那就进行加载。
判断图片元素是否处于浏览器视野中的示意图(手绘):
<强>二。根据思路完成代码如下:强>
& lt; ! DOCTYPE html> & lt; html  lang=癳n"祝辞 & lt; head> ,& lt; meta charset=癠TF-8"比; ,& lt; title>原生js实现图片懒加载& lt;/title> ,& lt; style> ,* { 保证金才能:0; ,,填充:0; ,,box-sizing: border-box; ,} ,ul { ,,溢出:隐藏。 list-style才能:没有; ,} 李,{ 浮:,才能离开; ,,宽度:50%; ,,身高:200 px; ,,填充:10 px; ,} img, li  { ,,显示:inline-block; ,,宽度:100%; ,,身高:100%; ,} ,& lt;/style> & lt;/head> & lt; body> & lt; div 类=癱ontainer"祝辞 ,& lt; ul> ,& lt; li> & lt; https://www.yisu.com/zixun/img src=" http://cdn.jirengu.com/book.jirengu.com/img/1.jpg " data-src=" http://cdn.jirengu.com/book.jirengu.com/img/1.jpg "> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李> <李> 李>