実現したいこと
メインビジュアルが表示されている間、ウィンドウ幅を変えたらページトップに移動したいです。
発生している問題・分からないこと
メインビジュアル以外の場所でもページトップに戻ってしまいます。
何かいい方法はないでしょうか。
該当のソースコード
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で非表示にしています。
>メインビジュアルが表示されている間
命題があいまいです
→メインビジュアルがちょっとでも表示されている
→メインビジュアルがn%以上表示されている
→メインビジュアルがすべて表示されている
で指定方法が変わってきます
現象確認できました。 この様な感じでしょうか? 
playground: https://livecodes.io/?x=id/dchta2q6vst
説明不足すみません。
確かに...わかりやすいご指摘ありがとうございます!
次回より気をつけます。
回答2件
あなたの回答
tips
プレビュー