@Serqwezxc

Как отследить прокрутку до секции на чистом js?

Например есть такая разметка

<section class="1"></section>
<section class="2"></section>
<section class="3"></section>
<section class="4"></section>
<section class="5"></section>


Нужно отследить прокрутку страницы, до середины каждой секции и добавлять ей определенный класс, учитывая что на разных устройствах, высота страницы будет разная.
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Serqwezxc Автор вопроса
Решил вот таким способом

const getId = (link) => link.getAttribute('href').replace('#', '')

const observer = new IntersectionObserver(
   (entries) => {
      entries.forEach((entry) => {
         if (entry.isIntersecting) {
            document.querySelectorAll('.menu__link').forEach((link) => {
               link.classList.toggle('menu__link--active', getId(link) === entry.target.id)
            })
         }
      })
   },
   {
      threshold: 0.4,
   }
)
document.querySelectorAll('.section').forEach((section) => {
   observer.observe(section)
})
Ответ написан
Ваш ответ на вопрос

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

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