OS X では、ユーザーがビューポートを越えてスクロールでき、ブラウザーがページをバウンスします。
ユーザーとして、私はこの効果を気に入っていますが、残念なことに私たちの Web サイトにバグが発生します。
ユーザーがページの下部にある大きな「次の記事」バナーをクリックすると、次の記事が読み込まれ、ページのほとんどの DOM が置き換えられます。これが発生すると、スクロール位置を一番上にリセットします。
window.scrollTo(0, 0);
これは通常うまくいきます。ただし、エラスティック スクロールによりブラウザがページをバウンスしているときに、ユーザーが「次の記事」をクリックすると、scrollTo
正しく動作しません。DOM の大部分を置き換えてスクロール位置をリセットした後、バウンス効果からのいくつかの残りのイベントが「到着」し、ゼロにリセットされた後、スクロールが 1 つまたは 2 つ下の画面にジャンプするようです。
ブラウザーを強制的に最初までスクロールさせ、残りのバウンス イベントを無視するにはどうすればよいですか?
これは WebKit で発生します。