web-dev-qa-db-ja.com

Chromeスクロール位置を記憶

Chromeの実際の「機能」である問題に直面しています。ご存知かもしれませんが、Chromeは、ページに戻ったときのスクロール位置を記憶しています。それに問題があります。

ユーザーに気付かれずにこれをオーバーライドする方法はありますか?

ミーズ

失敗したトライアウト:

  • Document.readyのScrollTop
26
amees_me

私はクロムをチェックしました、それはうまくいきました。時々setTimeoutはトリックをします:)

<script type="text/javascript">
window.onload=function(){
    setTimeout(function(){
        scrollTo(0,-1);
    },0);
}
</script>
10
Ikrom

Chrome 46+では、自動スクロール動作は、history.scrollRestorationを使用してオフにすることができます。

if ('scrollRestoration' in history) {
  history.scrollRestoration = 'manual';
}

ソース: https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration

56
Cory Duncan

これを解決するには、スクロールイベントにアタッチし、ユーザーが初めてスクロールしたときにスクロール位置をリセットします。私はその場でリロードできます。

このように見えます:

var scrollResetOnce = false;
$(window).on("scroll", function() {
    if (scrollResetOnce) return;
    scrollResetOnce = true;
    scrollTo(0, -1);
});
0
x = 0;  //horizontal coord
y = document.height; //vertical coord
window.scroll(x,y);

そのような一部のJavaScriptは、自動スクロールを停止するように操作できる可能性があります。

ただし、スクロールが自動的に最上部に移動するように設定されているか、実際にChromeページを最後のスクロール位置に移動する標準オプションを探しているか、完全にオフになりますか?

現在、scrollTop()に何を使用しようとしていますか?

0
Luke Clifford