console
const con = document.querySelector('.scroll-con')
const imgs=document.querySelectorAll('.scroll-con-img')
const options={
root:con,
threshold:1,
rootMargin:'0px' ,
}
function lazyload(target){
let io = new IntersectionObserver((entries, observer)=>{
entries.forEach(entry=>{
if(entry.isIntersecting){
const img = entry.target
const src= img.getAttribute('data-src')
img.setAttribute('src', src)
img.classList.add('fade')
observer.disconnect()
}
})
},options)
io.observe(target)
}
imgs.forEach(lazyload)
<div class="scroll-con">
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<p>哈哈哈哈哈哈哈哈</p>
<img class="scroll-con-img" data-src="https://img.alicdn.com/tfs/TB13quebcKfxu4jSZPfXXb3dXXa-990-430.jpg" />
<img class="scroll-con-img" data-src="https://img.alicdn.com/imgextra/i2/725677994/O1CN01Fv0Z0T28vIjh3UpAj_!!725677994.jpg_430x430q90.jpg" />
<img class="scroll-con-img" data-src="https://img.alicdn.com/imgextra/i3/725677994/O1CN01mhbKAI28vIjWIz9eM_!!725677994.jpg_430x430q90.jpg" />
</div>
.scroll-con{
height: 400px;
overflow-y: auto;
overflow-x: hidden;
}
.scroll-con-img{
width: 60%;
opacity: 0;
transform: translateX(50%);
transition: all 1s;
}
.fade{
transform: translateX(0);
opacity: 1;
transition: all 1s;
}