2010-07-21 71 views
4

我想創建一個導航菜單,我期望是一個非常長的頁面。我使用內部鏈接來簡化從某個部分或另一個部分獲取的內容,但該頁面是專門爲用戶在一個會話中上下滾動頁面而設計的。我發現內部鏈接不足以定位用戶在頁面上的位置,因此我在點擊內部鏈接時添加了平滑滾動。這對一些人有幫助,但如果你目前在旁邊的話,我很想改變內部鏈接的風格。如何改變內部鏈接的風格,如果目前有

作爲一個例子,我們在下面有五個鏈接。用戶從與鏈接A相對應的部分開始,因此它是大膽的。當他們進一步向下滾動時,他們到達與鏈接B相對應的部分,所以它現在是大膽的。如果他們跳下到與鏈路E對應的部分,如果他們跳到鏈接C.

步驟1變得黑體,並且相同的.......... ..... 步驟2 ............... 步驟3 ............... 步驟4

鏈接A ...............鏈接A ...............鏈接A ........... ....鏈接A

鏈接B ............... 鏈接B ...............鏈接B .......... .....鏈接B

鏈接C ...............鏈接C ...............鏈接C ... ............ 鏈接C

鏈接D ...............鏈接D ........... ....鏈接D ...............鏈接D

鏈接E ...............鏈接E .... ........... 鏈接E ...............鏈接E

有什麼辦法可以做到這一點?

回答

1

你也許可以用「懸停」事件,假設用戶的指針會在哪裏是你的內容鏈接蒙山A中的DIV,B,C,...

,但它不會在所有情況下工作...您還可以計算用戶向下滾動了多少,然後確定他在頁面中的位置。

這不是一件容易的事情。

1

使用javascript來跟蹤每個部分的滾動頂部位置,並且如果用戶輸入部分使用JavaScript來查找與其相關聯的鏈接,並添加一個類到您想要的樣式,同時從類中刪除類上一個鏈接。

1

一種方法是使用javascript查找所有內部鏈接,然後獲取offsetTop這將返回從頁面頂部到元素的像素數。然後我不確定是否有可靠的方法來判斷頁面是否被滾動。如果不是,則每隔幾秒輪詢一次以查看它的位置,然後與偏移量頂部進行比較。然而,這可能會有更好的解決方案。

+0

如果我理解正確,結束代碼將有五個獨特的部分:1)。該功能的觸發器,理想的情況是當頁面滾動時2)。獲取用戶位置的代碼3)。獲取內部鏈接位置的代碼4)。代碼比較2和3(如果2等於3然後5)5)。代碼來更改鏈接的類。這是正確的設置,還是我錯過了一塊? – 2010-07-21 18:36:25

+0

是的,除非你需要做更廣泛的測試,然後只是2 = 3。鏈接位置可能是100,而滾動位置可能是97.這裏有一些鏈接應該有助於http://codepunk.hardwar.org.uk/ ajs02.htm是一個類似的項目http://www.quirksmode.org/dom/events/scroll.html是onscroll事件的參考。另外,請查看http://www.quirksmode.org/js/findpos.html。這將有助於正確使用'offsetTop'。對不起,長回覆。祝你好運,讓它工作。 – qw3n 2010-07-21 19:12:51