2013-08-09 2 views
-2

У меня есть div, который представляет собой navbar на странице. Прежде чем это будут другие элементы, такие как логотипы, баннеры и т. Д. ... Я хочу сделать navbar липкой только тогда, когда она прокручивается вниз, то есть когда я прокручиваю вниз и оставляю ее за собой, мне нужно добавить к ней класс. Как я могу уловить этот момент?Как проверить, прокручивается ли элемент?

Там должно быть что-то вроде этого:

jQuery(document).scroll(function(){ 
// if jQuery('#navbar') is already scrolled down add to it .navbar-fixed else remove   
}); 
+0

Возможно, вам потребуется уточнить свой вопрос, я не уверен, что вы просите. – gersande

+0

вам нужно рассчитать начальное положение смещения элемента ... и окончательное положение смещения элемента. Просто получите разницу между обоими, .. это даст вам прокрутку –

+0

@VAGABOND, поэтому я спрашиваю, как сделай это? – user1692333

ответ

1

Вы можете получить позицию скроллинга с jQueryElement.scrollTop(). Вы можете получить смещение от «navbar» с jQueryElement.offset().top.. Вы можете использовать это, чтобы вычислить, прокручивался ли пользователь мимо навигационной панели:

$(document).scroll(function(){ 
    if($(document).scrollTop() > $('#navbar').offset().top) { 
    $('#navbar').addClass('navbar-fixed'); 
    } else { 
    $('#navbar').removeClass('navbar-fixed'); 
    } 
});