前提・実現したいこと
jqueryの処理で通常時は4000pxでフェードインして、5000pxでフェードアウトさせくて、レスポンシブ対応時は6300pxでフェードインして、6600pxでフェードアウトするという処理を行いたいです
発生している問題・エラーメッセージ
下のコードの様に記述すると、900px以下の時はしっかり背景画像が表示されるのですが、elseにあたる900px以上の時の処理が行われなくなってしまいます
該当のソースコード
html
1<div class="b-img"></div>
css
1#access .b-img { 2 position: fixed; 3 background: url(../images/bg.jpg) no-repeat 0 0; 4 background-position: center; 5 background-size: cover; 6 width: 100vw; 7 height: 100vh; 8 left: 0; 9 top: 0; 10 z-index: -1; 11}
jquery
1if(window.matchMedia("(max-width: 900px)").matches){ 2 $(function(){ 3 let backimg=$('.b-img'); 4 backimg.hide(); 5 $(window).scroll(function(){ 6 let top=$(this).scrollTop(); 7 if(top>6300 && top<6600){ 8 backimg.fadeIn(); 9 } else { 10 backimg.fadeOut(); 11 } 12 }); 13 }); 14} else { 15 $(function(){ 16 let backimg=$('.b-img'); 17 backimg.hide(); 18 $(window).scroll(function(){ 19 let top=$(this).scrollTop(); 20 if(top>4000 && top<5000){ 21 backimg.fadeIn(); 22 } else { 23 backimg.fadeOut(); 24 } 25 }); 26 }); 27}
試したこと
ふたつのfunctionにして試した
ifの位置をずらした
自分のわかる範囲で色々試してみたのですが、ダメでした。。。
補足情報(FW/ツールのバージョンなど)
記載するコードの領域が狭すぎたらお手数ですが教えていただければ記載し直します
一人ではどうしても解決できなかったので助けていただければ幸いです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/31 23:19