2013-12-19 7 views
11

Итак, на моем веб-сайте у меня есть статический заголовок на самой вершине сайта - он не прикреплен к верхней части окна просмотра. Однако то, что я хотел бы сделать, - это когда пользователь прокручивает нижнюю часть этого div, чтобы появился фиксированный навигатор. Мой код почти работает, но только триггеры на верхнем смещении div, который является самой верхней частью страницы. Вот мой код:Событие триггера при прокрутке вниз элемента?

$("#header-2").hide(); // hide the fixed navbar initially 

var topofDiv = $("#header-container").offset().top; //gets offset of header 
$(window).scroll(function(){ 
    if($(window).scrollTop() > topofDiv){ 
     $("#header-2").show(); 
    } 
    else{ 
     $("#header-2").hide(); 
    } 
}); 

Опять же, мне нужно, чтобы вызвать показ фиксированный Navbar раз в прокрутке мимо нижней части #header-container, а не сверху, как это делает сейчас. Помогите?

+2

Просто добавьте высоту элемента на это смещение. – undefined

+0

Чтобы получить дно, просто добавьте высоту # header-container в topfoDiv .. – synapze

+0

Проверьте [headhesive.js] (https://github.com/markgoodyear/headhesive.js/) и [waypoints.js] (http : //imakewebthings.com/waypoints/) – xr280xr

ответ

24

Я думаю, что если вы добавите высоту DIV в верхней смещения вы получите поведение, которое вы хотите

$("#header-2").hide(); // hide the fixed navbar initially 

var topofDiv = $("#header-container").offset().top; //gets offset of header 
var height = $("#header-container").outerHeight(); //gets height of header 

$(window).scroll(function(){ 
    if($(window).scrollTop() > (topofDiv + height)){ 
     $("#header-2").show(); 
    } 
    else{ 
     $("#header-2").hide(); 
    } 
}); 
+0

Это сделало. Благодаря! –

Смежные вопросы