2011-11-04 66 views
1

我想要一個導航欄設置爲position: fixed到我的窗口頂部,其中的鏈接平滑滾動到不同部分。jQuery偏移量()或位置() - 在靠近另一個元素時更改元素的屬性

我已經有平滑的滾動部分工作得很好。接下來,我想在向下滾動屏幕時更改導航欄的顏色。我想的東西轉/動畫是這樣的:

當向下滾動到第2節=動畫的黃色導航欄 當向下滾動爲Section3 =動畫黃色>紅色導航欄

我可以很容易達到這個效果通過點擊方法(當點擊#section2時,更改CSS),但是如果用戶向下滾動屏幕而不使用導航欄中的鏈接,我將如何改變它?

當我到目前爲止得到:http://jsfiddle.net/saltcod/4xkbs/2/

謝謝!

特里

回答

0

您可以處理滾動事件,然後在事件處理程序,得到的偏移量的部分,看是否y座標處於或導航列表上方。喜歡的東西:

$(window).scroll(function() { 
    var bottom = $("#navcontainer").offset().top + $("#navcontainer").offset().height(); 
    if ($("#section3").offset().top <= bottom) { 
     // Scrolled to or beyond section 3 
    } 
    else if ($("#section2").offset().top <= bottom) { 
     // Scrolled to or beyond section 2, but not to section 3 
    } 
} 

綁定到$(窗口)中的jsfiddle .scroll似乎並沒有工作,所以我沒有測試此代碼。

+0

太好了。感謝@dgvid,非常感謝您的幫助。 – saltcod

相關問題