// html
<div v-for="(item,index) in Array">
<img src="./imgs/timg.gif" data-src="./img2/time9.jpg" alt="" >
</div>
// js
let num=document.getElementsByTagName("img").length;
let img=document.getElementsByTagName("img");
let n=0;
lazyload();
// 当然了,可以专门设置监听滚轮事件 ,通过节流的,优化一下,减少性能损耗
window.onscroll=lazyload;
function lazyload(){
let seeHeight=document.documentElement.clientHeight;
let scrollTop=document.documentElement.scrollTop;
for(let i=n;i<num;i++){
if(img[i].offsetTop<seeHeight+scrollTop){
if(img[i].getAttribute("src")==="./img2/timg.gif"){ // 容错处理
img[i].src=img[i].getAttribute("data-src")
}
n=i+1; // 更新已加载图片的标记,防止重复加载
}
}
}
额外补充
// js中制作滚动代码的常用属性
页面可见区域: document.body.clientWidth;
页面可见区域高度:document.body.clientHeight;
页面正文全文宽:document.body.scrollWidth;
页面正文全文高:document.body.scrollHeight;
页面被卷去的高:document.body.scrollTop;
网页被卷去左:document.body.scrollLeft;
//元素属性
offsetTop:因为从元素往上找,第一个position属性为非static的(relative,absolute,fixed其一)的祖先元素,更多时候是body