Chromeのスクロールバー位置の記録をキャンセル
1021 ワード
ページが入ると自動的に最後までスクロールすることがあるという難題に直面しています.最初はコードの問題だと思っていたが、システム全体を探しても関連操作は見つからなかった.后でやっと知った后にhtml 5がwindowを新たに増加すると感じます.history.scrollRestorationプロパティは、apiの実験的性質であり、chrome 46以上のバージョンでサポートされています.
ブラウザ自体がこの設定を付けたのは好意的ですが、スクロールバーの位置を覚えないでほしいページユーザーもいます.コードに次のコードを追加して実行しようとすると、問題が解決します.
上記の方法を見つける前に、まずwindowで試してみました.onload時にwindowを実行します.scrollTo(0,0)は問題を解決することができず、ページは依然としてスクロールバーの位置を記録してジャンプし、タイマの非同期実行に参加すると記録位置をジャンプしてからトップに置くのはよくありません.
そこでwindowを研究します.history.scrollRestorationプロパティ
scrollRestorationのデフォルトパラメータ:auto、スクロールバーの位置をカスタマイズします.また、manual、スクロールバーの位置を手動で位置決めするパラメータもあります.
まずhistoryを検出する必要がありますscrollRestorationがサポートされているかどうかは、history.scrollRestorationを「manual」に設定し、これで大功を奏した.
ブラウザ自体がこの設定を付けたのは好意的ですが、スクロールバーの位置を覚えないでほしいページユーザーもいます.コードに次のコードを追加して実行しようとすると、問題が解決します.
if ("scrollRestoration" in history) {
history.scrollRestoration = "manual";
} else {
window.onunload = function() {
window.scrollTo(0, 0);
};
}
上記の方法を見つける前に、まずwindowで試してみました.onload時にwindowを実行します.scrollTo(0,0)は問題を解決することができず、ページは依然としてスクロールバーの位置を記録してジャンプし、タイマの非同期実行に参加すると記録位置をジャンプしてからトップに置くのはよくありません.
そこでwindowを研究します.history.scrollRestorationプロパティ
History:{
length: 14
scrollRestoration: "auto"
state: nul
}
scrollRestorationのデフォルトパラメータ:auto、スクロールバーの位置をカスタマイズします.また、manual、スクロールバーの位置を手動で位置決めするパラメータもあります.
まずhistoryを検出する必要がありますscrollRestorationがサポートされているかどうかは、history.scrollRestorationを「manual」に設定し、これで大功を奏した.