実現したいこと
ページをリロードされたらリロードされた位置ではなく先頭から始まるようにしたい。
前提
ScrollTriggerでパララックスを実装しています。
横スクロールや状態変化などがあり、その位置でリロードすると表示が崩れてしまう為、
リロードで先頭に戻したいという意図です。
https://duck.school/en
https://www2.mejiro.ac.jp/univ/mejinavi2024/
リロード後の処理を上記の参考サイトのようにしたいと思っています。
試したこと
JavaScript
1window.addEventListener("DOMContentLoaded", () => { 2 window.scrollTo(0,0); 3});
上記のコードでリロード後先頭になるようにしようとしましたがこれは動作しませんでした。
JavaScript
1window.addEventListener("DOMContentLoaded", () => { 2 setTimeout(() => { 3 window.scrollTo(0,0); 4 }, 3000) 5});
setTimeoutで試すと動作するので私が読み込みのタイミングを理解できていないのかと思います。
ただこの方法で実装を試してみたものの参考サイトとは違う挙動のような気がしています。
どう実装するのがいいのかご教授いただけると幸いです。
よろしくお願いいたします。
追記
history.scrollRestoration = "manual";
こちらがシンプルで本件の問題解決に至りました。
ただScrollTriggerの処理が複雑化しすぎているせいか
ScrollTriggerの処理後に記述すると動作しないという新たな問題も出てきました...
JavaScript、GSAP共にまだ未熟でご回答いただきやすい質問の仕方ではないのにもかかわらず
複数の有識者にご回答いただけて感謝いたします。
ありがとうございました。
回答4件
あなたの回答
tips
プレビュー
2024/03/29 08:42