<head>
<style>
.viewport {
width: 300px;
height: 200px;
border: 1px solid blue;
overflow: auto;
}
.box1 {
height: 600px;
width: 100%;
}
.imgs {
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div class="viewport" id="viewport">
<div class="box1">
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
<img
src="./place.jpg"
data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg"
alt="图片"
class="imgs"
/>
</div>
</div>
</body>
<script>
let viewport = document.getElementById('viewport')
let imgList = document.querySelectorAll('.imgs')
let options = {
root: viewport,
}
let IO = new IntersectionObserver(IOCallback, options)
imgList.forEach((item) => {
IO.observe(item)
})
function IOCallback(entries, observer) {
entries.forEach((item) => {
if (item.isIntersecting) {
console.info('出现在可视区内')
item.target.src = item.target.dataset.src
IO.unobserve(item.target)
}
})
}
</script>