実現したいこと
メインビジュアルが表示されている間、ウィンドウ幅を変えたらページトップに移動したいです。
発生している問題・分からないこと
メインビジュアル以外の場所でもページトップに戻ってしまいます。
何かいい方法はないでしょうか。
該当のソースコード
html
1<div class="mainvisual">メインビジュアル</div> 2<div class="contA">コンテンツ</div> 3: 4: 5
jquery
1$(function () { 2 $(window).on("scroll", function () { 3 const contATop = $(".contA").offset().top; 4 const scrollTop = $(window).scrollTop(); 5 6 if (scrollTop >= contATop) {//contAが表示されたら 7 $(".mainvisual").css("display", "none"); 8 window.addEventListener("resize", () => { 9 window.scrollTo(100, 0); 10 }); 11 } else { 12 $(".mainvisual").css("display", "flex"); 13 window.addEventListener("resize", () => { 14 window.scrollTo(0, 0); 15 }); 16 } 17 }); 18});
css
1.mainvisual{height:400vh;}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
GoogleやchatGTPなどで色々聞いてみたのですが、思うような結果が得られず、
.contA以降でもウィンドウ幅を変えるとページトップに戻ってしまいます。
補足
メインビジュアルはgsapで動かしているため高さを400vhにしていますが、実際は100vhのエリアだけスクロールしています。
念の為、.contAがページトップに来たらdisplay:noneで非表示にしています。
回答2件
あなたの回答
tips
プレビュー