jquery实时滚动检测

时间:2013-08-17 03:38:33

标签: jquery scroll live

如何设置多个滚动值?例如,我希望“sub-nav-controls”切换到与“wrap-nav-slider”不同的点。然而,他们目前都在96切换。我试图打破它们,但它打破了脚本。

var fixed = false;
$(document).live("scroll", function(e) {
    if ($(this).scrollTop() > 96) {
        if (!fixed) {
            fixed = true;
            $('.setup-page .wrap-nav-slider').addClass('nav-slider-fixed');
            $('.setup-page .sub-nav-controls').addClass('sub-nav-controls-fixed');

        }
    } else {
        if (fixed) {
            fixed = false;
            $('.setup-page .wrap-nav-slider').removeClass('nav-slider-fixed');
            $('.setup-page .sub-nav-controls').removeClass('sub-nav-controls-fixed');
        }
    }
});

1 个答案:

答案 0 :(得分:1)

将它们拆分为两个单独的if语句,并使用.hasClass而不是布尔变量。

$(document).live("scroll", function (e) {
    if ($(this).scrollTop() > 96) {
        $('.setup-page .wrap-nav-slider').addClass('nav-slider-fixed');
    } else {
        $('.setup-page .wrap-nav-slider').removeClass('nav-slider-fixed');
    }

    if ($(this).scrollTop() > 202) {
        $('.setup-page .sub-nav-controls').addClass('sub-nav-controls-fixed');
    } else {
        $('.setup-page .sub-nav-controls').removeClass('sub-nav-controls-fixed');
    }
});

免责声明:有更好的方法可以做到这一点