Как сделать чтобы при прокрутке элемент изменялся
Привет! У меня есть меню, которая находится сверху сайте. Оно зафиксировано. Я хочу чтобы при прокрутке цвет текста и фон изменялся, а если элемент вновь находится вверху то все делалось обратно. Желательно с комментариями. Заранее спасибо!
|
<div class="menu"></div> .menu.fixed { left: 0; position: fixed; top: 0; } var menu = document.querySelector('.menu'); var menuIsFixed = false; var top = 100; //При какой позиции фиксировать window.addEventListener('scroll', function() { if(window.pageYOffset > top !== navMenuIsFixed) { menuIsFixed = !menuIsFixed; menu.classList[menuIsFixed ? 'add' : 'remove']('fixed'); } }); |
Цитата:
|
Цитата:
if (menuIsFixed) { menu.classList.add('fixed'); } else { menu.classList.remove('fixed'); } |
спасибо
но чето не работает( |
Zombie_Killer, вероятно работает, просто вы от него не того ждете.
Код, что ruslan_mart написал не решает вашей задачи. Он при скролле страницы добавляет элементу с классом "menu" класс "fixed", если пользователь проскроллил от 100 и больше пикселей и удаляет этот класс, если пользователь вернулся в начало страницы. Чтобы при каждом скролле не добавлять/удалять класс у элемента была использована переменная, которая хранит состояние наличия класса "fixed" у ".menu". |
Цитата:
.is-color { color: black; background-color: orange; } |
Цитата:
menu.classList.toggle('fixed', menuIsFixed); Но это решение меньше поддерживается браузерами :) Цитата:
|
Часовой пояс GMT +3, время: 11:30. |