Показать сообщение отдельно
  #1 (permalink)  
Старый 16.06.2020, 11:40
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Как изменять класс элемента при скроллинге?
Как сделать, чтобы при перекрытии навигацией блока container к навигации добавлялся класс active? на чистом js

<!DOCTYPE html>
<html>

<body>

<nav class="nav" style="display: fixed;"></nav>

<section class="container"></section>
<div style="height: 1000px"></div>

<section class="container"></section>
<div style="height: 1000px"></div>

<section class="container"></section>
<div style="height: 1000px"></div>



<script>
var nav = document.querySelector('.nav');
    function navGallery(){
        let containers = document.getElementsByClassName('container');

        for(var i = 0; i < containers.length; i++){
            let container = containers[i].getBoundingClientRect();
            
            //если контейнер находится под блоком навигации, то добавляем ему класс active
            if(container.top < 0 && container.bottom > 0){
                nav.classList.add('active');
            } else {
                nav.classList.remove('active');
            }
        }
    }
    navGallery();
    window.addEventListener('scroll', navGallery);
</script>

</body>
</html>

Последний раз редактировалось webgraph, 16.06.2020 в 13:12.
Ответить с цитированием