2017-02-27 225 views
0

我有一个固定的标题滚动添加类'固定'这工作正常。我向下滚动,并在50px类'固定'后添加到我的标题容器,当我回滚了'固定'类被删除。添加类jQuery其他如果

现在在我的博客页面上,我希望“固定”类始终在那里,所以在页面加载时,甚至在滚动上下后,我希望类“固定”总是添加到我的标题容器。

我使用,如果在我的js else语句,但我似乎无法得到它的工作权利:

//Fixed header on scroll 
    $(window).scroll(function() {  
     var scroll = $(window).scrollTop(); 

     if (scroll >= 50) { 
      $(".header-wrapper").addClass("fixed"); 
     } else if { 
      $('.blog .header-wrapper').addClass('fixed'); 
     } else { 
      $(".header-wrapper").removeClass("fixed"); 
     } 
    }); 

任何想法如何排序呢?

回答

3

这使得更多的意义:设置在博客和测试固定类,如果我们有一个博客或不添加滚动事件处理程序

$('.blog .header-wrapper').addClass('fixed'); 
if ($(".blog").length==0) { 
    $(window).scroll(function() {  
    $(".header-wrapper").toggleClass("fixed",$(window).scrollTop()>=50); 
    }); 
} 

请注意,滚动事件被触发的每一个像素,所以你可能要debounce it

+0

完美的欢呼声和谢谢你的反弹链接。 – alexgomy

1

你必须使用条件if子句中像这样:

//Fixed header on scroll 
$(window).scroll(function() {  
    var scroll = $(window).scrollTop(); 

    if (scroll >= 50) { 
     $(".header-wrapper").addClass("fixed"); 
    } else if($('.blog .header-wraper').length > 0) { 
     $('.blog .header-wrapper').addClass('fixed'); 
    } else { 
     $(".header-wrapper").removeClass("fixed"); 
    } 
});