2017-09-15 125 views
1

我可能錯過了一些東西,但我不能讓window.scrollTo(0,0)移動到頁面頂部。香草JavaScript:滾動到頁首

我正在實施一個粘性很強的aside。它使用.getBoundingClientRect()來獲得初始位置。

但是,如果頁面部分滾動,並且我刷新頁面,它會錯誤地讀取位置,並且位置錯誤。

我雖然我會通過在開始時執行window.scrollTo(0,0)來解決這個問題,以便頁面位於頂部,並且aside位於正確的位置。

當我運行代碼時,window.scrollTo(0,0)似乎沒有任何區別。

重新加載窗口從頂部開始的正確方法是什麼?

我已經在Mac上的Firefox上測試過它。 Chrome和Safari提供了類似的行爲。

請不要jQuery。

+0

我建議將'新刷新的窗口'重命名爲'重新加載窗口',以避免混淆。事實上,如果您向下滾動並重新加載頁面,瀏覽器將盡最大努力回滾到之前的位置,以確保良好的用戶體驗。 – GottZ

+0

您是否嘗試過在scrollTo之前等待頁面加載?嘗試使用'window.onload' – TKoL

+0

你確定窗口是滾動的元素嗎?您是否確定在您調用scrollTo時窗口會滾動? – bluehipy

回答

1

您是否嘗試過在scrollTo之前等待頁面加載?嘗試使用window.onload

window.onload = function(){ 
    window.scrollTo(0,0); 
}