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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

2回答

1296閲覧

フレックスボックスとメディアクエリについて

kazu25

総合スコア27

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/09/08 13:44

編集2018/09/08 14:09

HTML

1<header> 2 <div class="container"> 3 <div class="header-inner"> 4 <button class="hamburger" id="mobile-menu"></button> 5 </div><!-- /.header-inner --> 6 </div><!-- /.container --> 7</header> 8 9<nav> 10 <div class="container"> 11 <ul class="navbar"> 12 <li><a href="#">ホーム</a></li> 13 <li><a href="#">会社案内</a></li> 14 <li><a href="#">製品案内</a></li> 15 <li><a href="#">サポート</a></li> 16 <li><a href="#">お問い合わせ</a></li> 17 </ul> 18 </div> 19</nav>

css

1hamburger { 2 border: none; 3 width: 50px; 4 height: 50px; 5 background: url("ハンバーガーメニューの画像") no-repeat; 6 background-size: contain; 7} 8 9.navbar { 10 display: none; 11 margin: 0; 12 padding: 0; 13 list-style-type: none; 14 background: #565656; 15} 16.navbar li a { 17 display: block; 18 padding: 10px 8px; 19 color: #fff; 20 text-decoration: none; 21} 22 23@media only screen and (min-width: 768px) { 24 .hamburger { 25 display: none; 26 } 27 .navbar { 28 display: flex !important; 29 justify-content: flex-end; 30 } 31}

jQuery

1(function($){ 2 $('#mobile-menu').on('click', function(){ 3 $('.navbar').slideToggle() 4 }) 5})(jQuery);

編集したので、もう一度よろしくお願いいたします

画面幅が768px以上の時に、navbarクラスにdisplay:flexを設定し、このブレークポイントを境にdisplay:flexとdisplay: none;は切り替わるのですが、jQueryを付け加えると、機能しなくなり、うまく表示できていないです。display:flexに!importantを追加すると解決しますが、理由がわかりません

どなたか教えていただけたら幸いです。

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

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

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

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

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

guest

回答2

0

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

とりあえずChrome/Firefoxでは効いていますね。
リロードしてみてください。

【【みんなの知識 ちょっと便利帳】Webページを最新の状態で見る - ブラウザーのフルリロード、スーパーリロード方法】
http://www.benricho.org/Tips/page_reload/

【Chromeブラウザでスーパーリロードする方法 #Pistatium】
http://kimihiro-n.appspot.com/show/86002

投稿2018/09/08 13:52

kei344

総合スコア69407

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

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

kazu25

2018/09/08 14:06

ありがとうございます。確認したら動いておりましたが、jQueryをつけるとうまく機能しなくなりました
kei344

2018/09/08 14:14

$('.navbar').parent().slideToggle() かな。「消す」ために「display:none」を使用するメソッドはflex等に対応しないことが多いです。
guest

0

jQueryの呼び出し方が原因です.

http://w3q.jp/t/6021

DOM操作に即時関数は向きません.

なので,

jQuery

1(function($){ 2 $('#mobile-menu').on('click', function(){ 3 $('.navbar').slideToggle(); 4 }); 5})(jQuery);

ではなくて,

jQuery

1$(function(){ 2 $('#mobile-menu').on('click', function(){ 3 $('.navbar').slideToggle(); 4 }); 5});

なら無事動くのです.

投稿2018/09/12 23:32

IKIX

総合スコア142

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問