@AlTerminator

Как определить, какой элемент попал в поле зрения?

Не хочется подключать каждый элемент к Intersection Observer отдельно, поэтому задумался о циклах, которые пройдут по всем элементам на странице и подключат наблюдатели к кнопкам и заголовкам. Осталось только определять тип элемента, через typeof не определяет. Через id и class не вариант определять элемент.

HTML:
<!DOCTYPE html>
<html lang="ru">
<head>
 <meta charset="UTF-8"> 
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <link rel="icon" type="image/x-icon" href="favicon.ico">
 <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
 <script src="script.js"></script>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <button>gg</button>
 <h1>H1</h1>
</body>
</html>


CSS:
body{
 display: grid;
}


JS:
const ConstObserver = new IntersectionObserver(entries =>
 {
  entries.forEach(entry =>
  {
   if (entry.isIntersecting)
   {
    //как здесь узнать, какой элемент перед нами - кнопка или заголовок?
   }
  });
 }, { threshold: 1 });
 //Те самые циклы
 document.querySelectorAll("h1").forEach(el => ConstObserver.observe(el));
document.querySelectorAll("button").forEach(el => ConstObserver.observe(el));
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
imko
@imko
Senior Scratch Developer
tagName свойство
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы