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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

HTML

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

CSS

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

Q&A

解決済

1回答

641閲覧

ハンバーガーメニューが非表示にならない。

guchinooo

総合スコア4

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/12/03 10:52

編集2021/12/03 10:53

ハンバーガーメニューを見様見真似で作ったのですが、思う挙動になりません。

①3本のマーク(ハンバーガーメニューのアイコン)をクリック → ②×になる、sp_navクラスが表示される
→③×をクリック → ④sp_navクラスが非表示になる、3本のマークが表示される

この挙動にしたいのですが、④でsp_navクラスが非表示になりません。もう一度クリックすると非表示になるのですが、、、何故なのでしょうか。改善策を教えていただきたいです。

判断するのに足りないコード等ありましたら追記しますので、コメントお願いします。

JQuery

1$('.openbtn').on('click',function(){ 2 $('.openbtn').toggleClass('active'); 3 $('.sp_nav').toggleClass('active'); 4 $('.sp_nav.active').fadeToggle(500); 5 });

HTML

1<!--スマホ ナビゲーション--> 2 <nav class="sp_nav"> 3 <ul> 4 <li class="h_nav sp_list"> 5 <a href="newlife_top.html">Home</a> 6 </li> 7 <li class="h_nav sp_list"> 8 <a href="newlife_news.html">News</a> 9 </li> 10 <li class="h_nav sp_list"> 11 <a href="newlife_top.html">Access</a> 12 </li> 13 <li class="h_nav sp_list"> 14 <a href="newlife_news.html">Contact</a> 15 </li> 16 </ul> 17 </nav> 18 19<!--ハンバーガーメニュー--> 20<div class="openbtn"> 21 <span></span> 22 <span></span> 23 <span></span> 24</div>

CSS

1/*activeクラス付与で線が回転して×になる*/ 2.openbtn.active span:nth-of-type(1) { 3 top: 16px; 4 left: 16px; 5 transform: translateY(6px) 6 rotate(-45deg); 7 width: 30%; 8} 9.openbtn.active span:nth-of-type(2) { 10 opacity: 0; 11} 12.openbtn.active span:nth-of-type(3) { 13 top: 28px; 14 left: 16px; 15 transform: translateY(-6px) 16 rotate(45deg); 17 width: 30%; 18} 19.sp_nav { 20 display: none; 21 margin-top: 80px; 22 z-index: 10; 23 width: 100%; 24 height: 100vh; 25 margin-left: auto; 26 color: #efefef; 27 background-color: rgba(225, 244, 247, 0.7); 28} 29.sp_nav ul { 30 width: 100%; 31 height: 100%; 32 padding: calc(((100vh - 75%) - 80px) / 2) 0; 33}

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

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

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

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

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

guest

回答1

0

ベストアンサー

$('.sp_nav.active').fadeToggle(500);だと、activeが付加されているときしか動作しません。

js

1$('.openbtn').on('click',function(){ 2 $('.openbtn').toggleClass('active'); 3 $('.sp_nav').toggleClass('active'); 4 $('.sp_nav').fadeToggle(500); 5 });

投稿2021/12/03 12:09

hatena19

総合スコア33795

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

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

guchinooo

2021/12/05 03:34

activeクラスが不要だったんですね・・・!助かりました、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問