2015-09-14 73 views
0

我有我的网站内有类“活跃”的各种元素。这被设置为默认值,并且我想在用户向下滚动页面时立即移除该类,但是在返回页面顶部(下面的代码以10px的延迟实现这两个代码)时恢复该类。删除/添加窗口滚动的类

除此之外,如果用户通过单击#sidebarToggle手动添加“活动”类,滚动时会立即删除“活动”类,忽略代码中指定的10px延迟。

如果任何人都可以对上述任何一个问题提供任何帮助,将不胜感激。谢谢。

$(window).scroll(function(){ 
    if($(window).scrollTop()>10) { 
     $("#sidebar").removeClass("active"); 
     $("#sidebarToggle").removeClass("active"); 
    } 
    else { 
     $("#sidebar").addClass("active"); 
     $("#sidebarToggle").addClass("active"); 
    } 
    }); 

回答

1

我想你一定只需拨动类父元素来这里集中孩子的元素,如body标签,并通过该应用“主动”行为:

body.active #one {} 
body.active #two {} 
body.active #three {} 

然后于JavaScript,你只需要切换一类元素(body)并验证活动类是否已经不适用:

$(window).scroll(function(){ 
    if($(window).scrollTop() > 100 && $('body').hasClass('active')) { 
     $('body').removeClass("active"); 
    } else if(!$('body').hasClass('active')) { 
     $('body').addClass("active"); 
    } 
}); 

Adapat为您的方便。

+0

感谢您的帮助@pik_at。我决定简化我的方法,并相应地更新了问题,你能帮助解决问题的第二部分吗?谢谢 –