jQuery在事件发生时做某事

时间:2015-01-14 13:23:32

标签: jquery if-statement addclass .when

我正在尝试将2个类添加到div中,第一个需要在滚动顶部等于一定量时添加,第二个添加IF滚动顶部大于一定量。

这是我的jQuery代码:

var Scroll = $(window).scrollTop();
var ScrollFXfullHeight = $('.header-wrapper').height(); 

    if (Scroll == ScrollFXfullHeight) {
        $("#navigation, .hidden_menu_link_container").addClass("fixed");
    } else if (Scroll > ScrollFXfullHeight) {
        $("#navigation, .hidden_menu_link_container, .stop_the_jump").addClass("thinner");  
    }

上面的解决方案显然使用了2个if语句,这里的问题是页面必须完全等于ScrollFXfullHeight才能添加第一个类,但是,如果你只是快速滚动它,那么事件不会被触发。

有没有办法说“WHEN Scroll == ScrollFXFullHeight添加类”所以即使滚动过去也会这样做?

1 个答案:

答案 0 :(得分:1)

检查Scroll是否大于或等于ScrollFXfullHeight,然后检查您的元素是否已有类fixed。如果没有,请添加它:

if (Scroll >= ScrollFXfullHeight) {
    if(!$("#navigation, .hidden_menu_link_container").hasClass('fixed')) { 
        $("#navigation, .hidden_menu_link_container").addClass("fixed");   
    } 
    $("#navigation, .hidden_menu_link_container, .stop_the_jump").addClass("thinner");
}

这样,即使用户滚过该确切点,该类仍将被添加,但仅添加一次。我觉得你应该也检查一下thinner课程是否已被添加,但这是你的电话