2013-03-09 55 views
1

我是新來的jQuery和JavaScript。我正在嘗試創建單頁網站。導航固定在頂部。在單個頁面的新「部分」中,我希望導航能夠顯示導航中當前要顯示的部分以及要突出顯示的部分。導航鏈接更改滾動位置(單頁網站)

我設法用scroll()做了一些工作,但只有當變量'top'大於0時才起作用。我知道這可能真的很愚蠢我做錯了,但我是新來的所以我希望這不會打擾你。

http://jsfiddle.net/mAPh6/

$(document).scroll(function() { 
    var top = $(document).scrollTop(); 

    if (200 > top > 0) 
     $(".navLinkTop").css("border-bottom", "5px solid #fff568"); 
    else 
     $(".navLinkTop").css("border-bottom", "none"); 

    if (400 > top > 200) 
     $(".navLinkAbout").css("border-bottom", "5px solid #fff568"); 
    else 
     $(".navLinkAbout").css("border-bottom", "none"); 

    if (400 > top > 0) 
     $(".navLinkWork").css("border-bottom", "5px solid #fff568"); 
    else 
     $(".navLinkWork").css("border-bottom", "none"); 

    if (400 > top > 0) 
     $(".navLinkContact").css("border-bottom", "5px solid #fff568"); 
    else 
     $(".navLinkContact").css("border-bottom", "none"); 
}); 

回答

2

當你這樣做a > b > c它不讀出爲 「A比B 更大, b爲大於c」。相反,會發生什麼情況如下:

  1. a > b > c的計算結果爲
  2. (true) > c(假設確實大於b)計算結果爲
  3. Number(true) > c由於存在類型的轉換,從而計算爲
  4. 1 > c這是相當隨機的

所以,3 > 2 > 0是真的,但3 > 2 > 1是錯誤的。一般來說,當您在做時,您只需要使用&&

這是因爲>操作是二進制的,那就是它有兩個參數。

你需要做的是(a > b) && (b > c)&&手段「和」

在你的情況,這意味着像200 > top > 0改變語句(top < 200) && (top > 0)

+1

唉唉,我看,這作品!非常感謝!我會盡快接受答案。謝謝。 – user1375823 2013-03-09 14:38:40