Переделать скрипт jQuery inView
Здравствуйте! Есть такой скрипт ---> https://www.jqueryscript.net/other/c...t-in-view.html
Он помогает определить если блок полностью в поле зрения. Все работает, но он определяет только прокрутку по вертикале, мне нужно чтоб и по горизонтале (по всем сторонам одновременно)! Вот тут демо: https://codepen.io/ethereal94/pen/yLVvNQQ Помогите сделать как надо, спасибо! |
ethereal,
https://javascript.ru/forum/dom-wind...tml#post533705 читать про Intersection_Observer_API |
Не понимаю я как с помощью этого сделать что нужно
|
добавление класса в зоне видимости IntersectionObserver
ethereal,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
body {
width: 3000px;
height: 3000px;
}
.element {
width: 300px;
height: 300px;
float: left;
margin: 10px;
background: coral;
transition: 1s;
}
.visible.element {
background: skyblue;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function() {
const lazyAnimate = divs =>
divs.forEach(el => el.target.classList.toggle('visible', el.intersectionRatio > 0.4));
let observer = new IntersectionObserver(lazyAnimate, {
rootMargin: "10px",
threshold: [.3, 1.0]
});
let container = document.querySelectorAll('.element');
container.forEach(div => observer.observe(div))
});
</script>
</head>
<body>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 18:21. |