我想要实现图片懒加载,用getBoundingClientRect()获得相对于视口的位置
这个img的src应该为空才对,因为这张图片的位置处于视口外,可是它现在的src不是为空
在没有滑动滚动条的情况下
第一个数是图片的getBoundingClientRect().top
第二个数是视图的高
在滑动滚动条后,把滚动条滑到顶部,图片的getBoundingClientRect().top变正常了
这究竟是为什么??
let imgs = document.querySelectorAll('img')
fn()
window.onscroll = lazyload
function fn(){
let clientH = window.innerHeight
Array.from(imgs).forEach((item,index)=>{
let oBounding = item.getBoundingClientRect()
console.log(oBounding.top,clientH)
if(oBounding.top>0 && oBounding.top <= clientH ){
item.src = item.getAttribute('data-url')
}
})
}
let flat = true
function lazyload(){
if(flat){
flat = false
setTimeout(function(){
fn()
flat = true
},300)
}else{
return
}
}