###Firefoxでもナビがスクロールで上部に来た際に固定したい
お世話になります。
Webサイトでスクロールすると上部に固定されるナビゲーションを作成しているのですが
Firefoxのみスクロールで上部にくる前に固定されてしまいます。
chromeやsafariでは問題ありません。
scrollTop()の動作でFirefoxでクセがあるというところまでは調べたのですが、
その対処方法が分かりません。
ご存知の方がいらっしゃいましたら
ご教授いただけるとありがたいです。
何卒よろしくお願いいたします。
該当のソースコード
html
1<div> 2- 3- 4- 5</div> 6<div id="home-nav" class="home-nav"> 7 <nav> 8 <ul> 9 <li>〜</li> 10 <li>〜</li> 11 <li>〜</li> 12 </ul> 13 </nav> 14</div>
script
1<script> 2//jQuery 読込み 3<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 4//スクロールすると上部に固定されるナビゲーション 5jQuery(function() { 6 var nav = jQuery( '#home-nav') ; 7 //navの位置 8 var navTop = nav.offset().top; 9 //スクロールするたびに実行 10 jQuery( window ).scroll(function () { 11 var winTop = jQuery(this).scrollTop(); 12 //スクロール位置がnavの位置より下だったらクラスfixedを追加 13 if ( winTop >= navTop ) { 14 nav.addClass('homenav-fixed') 15 } else { 16 nav.removeClass('homenav-fixed') 17 } 18 }); 19}); 20</script>
css
1 2/*jQuery 制御 メニュー固定css*/ 3.homenav-fixed { 4 position: fixed; 5 width: 100%; 6 top: 0; 7 background: rgba( 255,255,255,0.9 ); 8 z-index: 5000; 9} 10 11/*メニューcss*/ 12nav ul { 13 display: -webkit-flex; 14 display: -ms-flexbox; 15 display: flex; 16 -webkit-flex-wrap: wrap; 17 -ms-flex-wrap: wrap; 18 flex-wrap: wrap; 19} 20
クラス homenav-fixed にてCSS制御してますので
jQueryではクラスの制御だけです。
何卒よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー