Добавьте тень нижнего блока в меню при прокрутке и прокрутке
У меня есть меню с этими свойствами CSS:
#header {
width: 100%;
position: fixed;
z-index: 9000;
overflow: auto;
}
Таким образом, на основе свойств CSS выше, этот элемент (#header
), очевидно, останется на вершине независимо от прокрутки. Я пытаюсь добиться прокрутки вверх и прокрутки вниз, в этот элемент должна быть добавлена тень нижнего блока (#header
) и должен быть удален, как только он достигнет расположения по умолчанию этого элемента (#header
), который, очевидно, является самым верхним местом на странице.
Я открыт для любых предложений и рекомендаций.
2 ответа
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll > 0) {
$("#header").addClass("active");
}
else {
$("#header").removeClass("active");
}
});
body {
height: 2000px;
margin: 0;
}
body > #header{position:fixed;}
#header {
width: 100%;
position: fixed;
z-index:9000;
overflow: auto;
background: #e6e6e6;
text-align: center;
padding: 10px 0;
transition: all 0.5s linear;
}
#header.active {
box-shadow: 0 0 10px rgba(0,0,0,0.4);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="header">HEADER</div>
Всякий раз, когда страница прокручивается, мы сохраняем текущее расстояние от верха документа в переменной (scroll
).
Если текущая позиция больше 0, мы добавляем класс active
в #header
,
Если текущая позиция равна 0, мы удаляем класс.
Создайте класс с именем shadow, чтобы добавить его в div заголовка на window.scroll.
var top = $('#header').offset().top;
$(window).scroll(function (event) {
var y = $(this).scrollTop();
if (y >= 60) { $('#header').addClass('shadow'); }
else { $('#header').removeClass('shadow'); }
});
.shadow {
-webkit-box-shadow: 0px 10px 5px rgba(50, 50, 50, 0.75);
-moz-box-shadow: 0px 10px 5px rgba(50, 50, 50, 0.75);
box-shadow: 0px 10px 5px rgba(50, 50, 50, 0.75);
}