url
Назначение。scrollTop
Определите расстояние, на которое прокручивается изображение, innerHeight
Найти текущую высоту области просмотра,offsetTop
Получить изображение относительно родителяпозиция элемента,ЗатемscrollTop + clientH - elementTop - Высота самого изображения
Получить текущую позицию элемента.
если >=0 Укажите, что элемент находится в области просмотра, и присвойте значение URL-адресу элемента.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
li{
width: 100%;
height: 200px;
text-align: center;
line-height: 200px
}
img{
display: block;
height: 200px;
}
</style>
</head>
<body>
<!-- <img data-url="адрес реального изображения" src="Адрес с маленькой картинкой"/> -->
<img src="./images/1pxImg.png" data-url="./images/01.jpg">
<img src="./images/1pxImg.png" data-url="./images/01.jpg">
<img src="./images/1pxImg.png" data-url="./images/02.jpg">
<img src="./images/1pxImg.png" data-url="./images/02.jpg">
<img src="./images/1pxImg.png" data-url="./images/03.jpg">
<img src="./images/1pxImg.png" data-url="./images/03.jpg">
<img src="./images/1pxImg.png" data-url="./images/04.jpg">
<img src="./images/1pxImg.png" data-url="./images/04.jpg">
<script>
let imgs = document.querySelectorAll('img')
console.log(imgs);
scrollFn()
// Слушайте события прокрутки
window.onscroll = scrollFn
function scrollFn() {
let clientH = window.innerHeight // Высота зоны обзора
let scrollTop = document.documentElement.scrollTop // высота прокрутки
console.log(clientH, scrollTop)
Array.from(imgs).forEach(item => {
let elementTop = item.offsetTop // Положение элемента относительно его родительского элемента
// console.log('eleTop', elementTop)
let count = scrollTop + clientH - elementTop - item.height // позиция элемента
console.log('count',count)
if(count >= 0) {
// Если больше или равно 0, это указывает на то, что оно находится в пределах видимой области, и присваивает значение изображению.
item.setAttribute('src', item.getAttribute('data-url'))
}
})
}
</script>
</body>
</html>