2017-09-15 6 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 = function(){ 
    window.scrollTo(0,0); 
}