@Keany

Добавление определенного класса к header при прокрутке до определенного блока?

Добрый день!
Есть несколько блоков с одинаковыми классами. При прокрутки до которых, к шапке сайта применяются определенные стили, а после прокрутки удаляются. Перебираю циклом все элементы, но почему -то срабатывает только на последнем блоке. Как это можно исправить?
document.addEventListener('DOMContentLoaded', () => {
 
    const targetBlock = document.querySelectorAll('.gradient');
    console.log(targetBlock)
    const header = document.getElementById('header');

   const changeHeaderColor = () => {
        targetBlock.forEach((item, i) => {
            const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
            const targetOffset = item.offsetTop;
            const headerHeight = header.offsetHeight;

            if (item.getBoundingClientRect().bottom <= 0) {
                header.classList.remove('dark');
            } else if (scrollTop >= targetOffset - headerHeight) {
                header.classList.add('dark');
            } else {
                header.classList.remove('dark');
            }
        })
    }

    window.addEventListener('scroll', changeHeaderColor);
});
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект