2013-08-17 53 views
0

我该如何设置多个滚动值?例如,我想让“sub-nav-controls”在不同于“wrap-nav-slider”的位置切换。然而,他们目前都在96岁。我试图打破它们,但它打破了剧本。jquery live滚动检测

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'); 
     } 
    } 
}); 
+0

您使用jQuery的哪个版本呢? – saada

回答

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'); 
    } 
}); 

免责声明:还有更好的方法这

+0

不需要检查hasClass,因为jQuery会在addClass上执行它。 – DGS

+0

@DGS,谢谢。出于某种原因,我认为它对'className'做了简单的追加。 – FakeRainBrigand

+0

工作。谢谢。 – Smurfman82