2011-10-14 62 views
2

我想滾動到一個元素(使其對用戶可見),即使元素位於頁面的底部。如何讓頁面滾動到一個元素?

我試圖

document.getElementById('idOfLink').focus(); 

但如果元素是在一個很長的網頁它不是對用戶可見的底部。

+0

在jQuery中,可以很容易地滾動到抵消任何元素:'$(窗口).scrollTop($('# idOfLink')。offset()。top);' – Blazemonger

+0

@ mblase75:使用純DOM方法更簡單,更健壯。 –

回答

1

可以使用,因爲它最初的目的哈希標籤:

window.location.hash = "idOfLink" 

Example

+1

如果'window.location'已經有散列,那麼這個代碼能工作嗎? – Blazemonger

+0

現有哈希替換 – campino2k

2

有兩種可能的方法,每個方法適用於不同的場景:

您可以使用scrollIntoView(),這將元素滾動到視圖中,但不會添加保存用戶按下後退按鈕時的「狀態」:

document.getElementById('idOfLink').scrollIntoView(); 

如果你想支持後退按鈕,你將需要修改window.location.hash

window.location.hash = 'idOfLink'; 
+1

+1,我喜歡學習新功能 – Joe

相關問題