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

Как добавить class к элементу при прокрутке?
Суть:

1. Есть фиксированная панель навигации
2. Имеются разные блоки, среди которых есть много блоков с одинаковым классом .container

Цель:
Когда какой-либо блок с классом .container находится под навигацией .nav, нужно добавить к навигации класс .active)

Т.е. когда блок .container пересекается с навигацией - у навигации должен быть добавлен класс .active. Если они не пересекаются, значит класс .active должен быть убран.


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<nav class="nav"></nav>

<!-- У этого контейнера нет класса container, поэтому при пересечении с навигацией ничего не должно происходить -->
<div style="height: 1000px; background: yellow"></div>


<!-- Контейнер имеет класс .container, значит при пересечении с навигацией к ней добавляется класс .active -->
<section class="container" style="height: 1000px; background: green"></section>



<div style="height: 1000px; background: yellow"></div>

<section class="container" style="height: 1000px; background: blue"></section>

<style>
    .nav {
        background: red;
        position: fixed;
        top: 0;
        left: 0;
        height: 50px;
        width: 100%;
        z-index: 1;
    }
    .nav.active {
        opacity: 0.25;
    }
</style>
</body>
</html>
Ответить с цитированием