что-то типа такого))
// Получаем нужную секцию
let heroItems = document.querySelectorAll(".intro__hero-items");
let element = document.querySelector(".intro"), Visible = function (target) {
// Все позиции элемента
let targetPosition = {
top: window.pageYOffset + target.getBoundingClientRect().top,
left: window.pageXOffset + target.getBoundingClientRect().left,
right: window.pageXOffset + target.getBoundingClientRect().right,
bottom: window.pageYOffset + target.getBoundingClientRect().bottom
},
windowPosition = {
// Получаем позиции окна
top: window.pageYOffset,
left: window.pageXOffset,
right: window.pageXOffset + document.documentElement.clientWidth,
bottom: window.pageYOffset + document.documentElement.clientHeight
};
if (// Если позиция нижней части элемента больше позиции верхней части окна, то элемент виден сверху
targetPosition.bottom > windowPosition.top &&
// Если позиция верхней части элемента меньше позиции нижней части окна, то элемент виден снизу
targetPosition.top < windowPosition.bottom &&
// Если позиция правой стороны элемента больше позиции левой части окна, то элемент виден слева
targetPosition.right > windowPosition.left &&
// Если позиция левой стороны элемента меньше позиции правой части окна, то элемент виден справа
targetPosition.left < windowPosition.right) {
// Если элемент полностью видно, то запускаем следующий код
// Запускаем анимацию смартфонов
heroItems.forEach((el) => {
el.classList.remove("paused");
});
} else {
// Если элемент не видно, то запускаем этот код
// Останавливаем анимацию смартфонов
heroItems.forEach((el) => {
el.classList.add("paused");
});
}
};
// Запускаем функцию при прокрутке страницы
window.addEventListener("scroll", function () {
Visible(element);
});
// А также запустим функцию сразу. А то вдруг, элемент изначально видно
Visible(element);