Добавьте тень нижнего блока в меню при прокрутке и прокрутке

У меня есть меню с этими свойствами 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>

Версия JSFiddle

Всякий раз, когда страница прокручивается, мы сохраняем текущее расстояние от верха документа в переменной (scroll).

Если текущая позиция больше 0, мы добавляем класс active в #header,

Если текущая позиция равна 0, мы удаляем класс.

Создайте класс с именем shadow, чтобы добавить его в div заголовка на window.scroll.

http://jsfiddle.net/43aZ4/

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);
}
Другие вопросы по тегам