私の過剰設計されたウェブアプリ:
- URLでを使用せずに、URL間の移動をアニメーション化するための使用
history.pushState
とイベント。popState
#
- 外側のdivを使用してスクロールバーを処理し、htmlとbodyには。があり
overflow:hidden
ます。これは、ユーザーがクリックして戻ったときに、左にアニメーション化する前に上にジャンプしないようにするためです。
ここで私の質問は、ユーザーが[進む]ボタンをもう一度クリックした場合、スクロールした場所を保持したり、元の場所にスクロールして戻したりする方法です。
私の最初の考えは、
history.state
オブジェクトをスクロール位置を保存する場所として使用し、ユーザーが前方にクリックしたときにそれをロードすることです。(オブジェクトreplaceState
のない最初のページに移動する必要がありhistory.state
ます。)このアイデアの問題は、ユーザーがクリックして戻ると、scrollTopを現在の状態に追加するためのアクセス権がなくなることです。次のアイデアは別の配列を使用することなので、インデックスでスクロール位置を取得しますが、問題は、ユーザーがタブを閉じてから再度開いた場合、または別のサイトに移動して戻ってきた場合です。後でマイニングするために、それらの前後の履歴は保存されますが、
scrollTop
sの個別の配列は失われます。
あなたの提案は何ですか?