Вопрос проверяет знание методов отслеживания видимости элементов.
Используйте IntersectionObserver для эффективного отслеживания видимости. Альтернативно — сравнение координат элемента с размерами viewport.
1. IntersectionObserver (современный способ):
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
console.log('Элемент в зоне видимости');
}
});
});
observer.observe(document.querySelector('.element'));2. Проверка координат (устаревший способ):
function isInViewport(element) {
const rect = element.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= window.innerHeight &&
rect.right <= window.innerWidth
);
}Вывод:IntersectionObserver — предпочтительный метод из-за производительности и простоты.