如果是,则添加类jQuery

时间:2017-02-27 09:37:42

标签: javascript jquery html

我在滚动添加类'固定'这很好用。我向下滚动,经过50px课程后修复了#39;添加到我的标题容器中,当我向上滚动“固定的”#39;课程被删除。

现在,在我的博客页面上,我希望修复'总是在那里的课程,所以在页面加载,甚至在上下滚动之后,我喜欢上课“修复”。总是被添加到我的标题容器中。

我在我的js中使用if 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");
        }
    });

任何想法如何排序?

2 个答案:

答案 0 :(得分:3)

这更有意义:在博客上设置固定类,并在添加滚动事件处理程序时测试我们是否有博客

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

请注意,每个像素都会触发滚动事件,因此您可能需要debounce it

答案 1 :(得分: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");
    }
});