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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

Q&A

解決済

1回答

4438閲覧

ハンバーガーメニューをボタンクリック以外でも閉じたい

momo.a

総合スコア11

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

0グッド

0クリップ

投稿2020/09/24 15:09

ハンバーガーボタンクリック以外でもメニューが閉じる動きにしたい

cssとjQueryでハンバーガーメニューを作っています。
ボタンの動き、メニューの表示までは上手くいったのですが、ボタン以外でメニューを閉じる事ができません。メニュー項目のクリックまたはボタン以外の場所をクリックした時にメニューが隠れるようにしたいのですが、お分かりになる方がいましたらご教示下さい。

発生している問題・エラーメッセージ

メニューがボタンクリック以外で閉じない

該当のソースコード

HTML

1 <header class="page-header"> 2 <nav id="g-nav"> 3 <ul> 4 <li><a href="#">Home</a></li> 5 <li><a href="#link01">Portfolio</a></li> 6 <li><a href="#link02">About</a></li> 7 <li><a href="#link03">Contact</a></li> 8 </ul> 9 </nav> 10 <div id="hamburger"> 11 <span class="inner_line" id="line1"></span> 12 <span class="inner_line" id="line2"></span> 13 <span class="inner_line" id="line3"></span> 14 </div><!-- /.hamburger --> 15 </header><!-- /.page-header --> 16 17<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 18 19<script> 20//humberger-menuの設定 21function hamburger() { 22 document.getElementById('line1').classList.toggle('line_1'); 23 document.getElementById('line2').classList.toggle('line_2'); 24 document.getElementById('line3').classList.toggle('line_3'); 25 document.getElementById('g-nav').classList.toggle('in'); 26} 27document.getElementById('hamburger').addEventListener('click' , function () { 28 hamburger(); 29} ); 30 </script> 31 32

CSS

1 #g-nav{ 2 position: absolute; 3 top: 0; 4 left: -40%; 5 width: 40%; 6 height: 100vh; 7 background: rgba(255, 47, 158, 0.7); 8 position: fixed; 9 transition: .7s; 10} 11#g-nav ul{ 12 padding-top: 80px; 13} 14#g-nav li:nth-of-type(1){ 15 margin-top: 70px; 16} 17#g-nav ul li{ 18 font-size: 40px; 19 text-align: center; 20 margin-bottom: 40px; 21} 22#g-nav a{ 23 display: block; 24 text-decoration: none; 25 color: var(--txt02-color); 26 margin: 0 15px; 27 padding: 10px; 28 transition: .5s; 29} 30#hamburger { 31 display: block; 32 position: absolute; 33 top: 20px; 34 left: 30px; 35 width: 50px; 36 height: 44px; 37 cursor: pointer; 38 transition: 1s; 39 position: fixed; 40} 41.inner_line { 42 display: block; 43 position: absolute; 44 left: 0; 45 width: 55px; 46 height: 3px; 47 background-color: var(--txt01-color); 48 transition: 1s; 49 border-radius: 4px; 50} 51#line1 { 52 top: 0; 53} 54#line2 { 55 top: 20px; 56} 57#line3 { 58 bottom: 0px; 59} 60 61.in{ 62 transform: translateX(100%); 63} 64.line_1,.line_2,.line_3{ 65 background: #000000; 66} 67.line_1 { 68 transform: translateY(20px) rotate(-45deg); 69 top: 0; 70} 71.line_2 { 72 opacity: 0; 73} 74.line_3 { 75 transform: translateY(-20px) rotate(45deg); 76 bottom: 0; 77}

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

VS-code

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

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

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

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

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

guest

回答1

0

ベストアンサー

現状の Script の最後に下記のコードを追加すればいいでしょう。

js

1document.getElementById('g-nav').addEventListener('click' , function () { 2 hamburger(); 3} );

jQuery を読み込んでますが、提示されているコードでは使用していないので削除してもいいのでは。
他で使っているなら別ですが。

投稿2020/09/24 16:15

hatena19

総合スコア34075

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

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

momo.a

2020/09/25 16:28

hatena19様 お教え頂いたコードの追加で無事解決致しました! ありがとうございます。ハンバーガーはjavascですね(汗 失礼しました。 jQueryはMixitupの為読み込んでおります、こちらもご指摘ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問