在窗口滚动上删除/添加类

时间:2015-09-14 14:39:28

标签: jquery class scroll

我的网站中有各种“活动”类的元素。这被设置为默认值,我想在用户向下滚动页面时立即删除该类,但是在返回到页面顶部时也恢复该类(下面的代码都以10px延迟实现)。 / p>

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

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

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

1 个答案:

答案 0 :(得分:1)

我认为你必须切换一个父元素的类来聚焦这里的子元素,比如body标签和apply" active"这样的行为:

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

然后在Javascript上你只需要切换第一类元素(正文)并验证活动的classe是否已经应用如下:

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

随着您的方便适应。