質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1127閲覧

Firefoxではスクロールすると上部に固定されるナビゲーションの挙動がおかしい

d-xanthus

総合スコア56

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/11/02 11:17

編集2018/11/05 06:59

###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ではクラスの制御だけです。

何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/11/05 04:39

CSSも記述してください。また、ところどころにある全角スペースはそのまま入っているのでしょうか?
d-xanthus

2018/11/05 06:46

x_x様、ご覧頂きましてありがとうございます。CSSを記述させて頂きました。また所々の全角スペースですが、実際は半角スペースですしクロームやサファリでは正常に動作していますのでとりあえず無視して大丈夫だと考えています。
x_x

2018/11/05 06:52

提示コードのみでは再現しません。何か漏れがあるのではないでしょうか?
d-xanthus

2018/11/05 07:01

前提となるjQueryの読込みコードを記載しました。これで全部だと思いますが…
guest

回答2

0

自己解決

Firefoxのアップデートで、このエラーは解消されたようです。
閲覧頂きありがとうございました。

投稿2018/11/19 13:28

編集2018/11/19 13:28
d-xanthus

総合スコア56

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

動くサンプル:https://jsfiddle.net/rvs7jfhp/

問題が再現しません。
script要素の書いている位置がおかしいので、HTML自体を見直してみてください。

HTML

1<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 2<!-- ↑ script要素の中に入れない! --> 3<script> 4//jQuery 読込み 5// 削除 削除 削除 削除 削除 削除 削除 削除 削除 削除 削除 削除 削除 削除 6//スクロールすると上部に固定されるナビゲーション 7jQuery(function() { 8 var nav = jQuery( '#home-nav') ; 9 //navの位置 10 var navTop = nav.offset().top; 11 //スクロールするたびに実行 12 jQuery( window ).scroll(function () { 13  var winTop = jQuery(this).scrollTop(); 14  //スクロール位置がnavの位置より下だったらクラスfixedを追加 15  if ( winTop >= navTop ) { 16   nav.addClass('homenav-fixed') 17  } else { 18   nav.removeClass('homenav-fixed') 19  } 20 }); 21}); 22</script>

投稿2018/11/19 13:14

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d-xanthus

2018/11/19 13:27

kei344さま、 ご回答頂きましてありがとうございます。また記述ミスをご指摘戴きありがとうございます。 実際はWordPress内封のjQueryを使用しているので、追加記述の際にミスしていたようです。 申し訳ないです。 またFirefoxの直近のアップデートでどうもこの問題が解消されたようで 改めて検証してみると正常に動いていることを確認しました。 お手数をおかけ致しました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問