実際には Chrome の「機能」である問題が発生しています。ほとんどの人が知っているように、Chrome は、ページに戻ったときに戻るスクロール位置を記憶しています。そして、私はそれについて一種の問題を抱えています。
ユーザーが気付かずにこれをオーバーライドする方法はありますか?
ミース
試行錯誤の失敗:
- document.ready の ScrollTop
実際には Chrome の「機能」である問題が発生しています。ほとんどの人が知っているように、Chrome は、ページに戻ったときに戻るスクロール位置を記憶しています。そして、私はそれについて一種の問題を抱えています。
ユーザーが気付かずにこれをオーバーライドする方法はありますか?
ミース
試行錯誤の失敗:
Chrome 46 以降では、history.scrollRestoration を使用して自動スクロール動作をオフにすることができます。
if ('scrollRestoration' in history) {
history.scrollRestoration = 'manual';
}
ソース: https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration
クロムで確認しましたが、うまくいきました。時々setTimeout
トリックをします:)
<script type="text/javascript">
window.onload=function(){
setTimeout(function(){
scrollTo(0,-1);
},0);
}
</script>
スクロールイベントにアタッチし、ユーザーが初めてスクロールしたときにスクロール位置をリセットすることでこれを解決しました。私にとっては、その場でのリロードに役立ちます。
次のようになります。
var scrollResetOnce = false;
$(window).on("scroll", function() {
if (scrollResetOnce) return;
scrollResetOnce = true;
scrollTo(0, -1);
});
x = 0; //horizontal coord
y = document.height; //vertical coord
window.scroll(x,y);
そのような一部の Javascript は、自動スクロールを停止するために操作できる可能性があります。
ただし、スクロールが自動的に一番上に移動するように設定されていることに満足していますか、それともページを最後のスクロール位置に移動して完全にオフにするChrome標準オプションを実際に探していますか?
現在、scrollTop() に何を使用しようとしていますか?
これを行うためのクリーンな方法を次に示します。
window.addEventListener('unload', function(e){
document.body.style.display = 'none';
});
本文の表示を「なし」に設定するだけで、ページがアンロードされる前にブラウザーがページの上部までスクロールすることを心配する必要がなくなり、スクロール位置が自動的に 0 にリセットされます。