2013-08-17 85 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