ハンバーガーメニュー内のリンクをクリックするとハンバーガーメニューが閉じるようにしたいと考えています。
【現状】
ハンバーガーメニュー内のリンクをクリックとすると該当箇所まで移動はしますが、ハンバーガーメニューが閉じずに開いたままです。
【やりたい事】
ハンバーガーメニュー内のリンクをクリックで該当箇所まで移動と同時にハンバーガーメニューを閉じたいです。
【試したこと】
似たような質問を見たり調べたりして、様々なコードを試してみましたが、ハンバーガーメニューが開けなかったりしました。
JS初心者の為、よろしくお願いいたします。
HTML
1<div class="navToggle"> 2 <span></span><span></span><span></span> 3</div> 4<div id="globalMenuSp"> 5 <ul id="manu" class="menu"> 6 <li><a href="#cando" target="_top" class="menu_cando">できること</a></li> 7 <li><a href="#application" target="_top" class="menu_application">利用申請</a></li> 8 <li><a href="#manual" target="_top" class="menu_manual">マニュアル</a></li> 9 <li><a href="#inquiry" target="_top" class="menu_inquiry">お問い合わせ</a></li> 10 </ul> 11</div>
CSS
1/*ハンバーガーメニュー*/ 2 3#globalMenuSp { 4 position: fixed; 5 z-index: 4; 6 top: 0; 7 left: 0; 8 color: #000; 9 text-align: center; 10 transform: translateY(-100%); 11 transition: all 0.6s; 12 width: 100%; 13 padding-top:-100px; 14} 15 16#globalMenuSp ul { 17 background: rgba(0,73,122,0.65); 18 margin: 0 auto; 19 padding: 0; 20 width: 100%; 21 display:inherit; 22} 23 24#globalMenuSp ul li { 25 font-size: 1.1em; 26 list-style-type: none; 27 padding: 0; 28 width: 100%; 29 border-bottom: 1px dotted #fff; 30} 31 32/* 最後はラインを描かない */ 33#globalMenuSp ul li:last-child { 34 padding-bottom: 0; 35 border-bottom: none; 36} 37 38#globalMenuSp ul li a { 39 display: block; 40 color: #fff; 41 padding: 1em 0; 42} 43 44/* このクラスを、jQueryで付与・削除する */ 45#globalMenuSp.active { 46 transform: translateY(0%); 47} 48 49/*ハンバーガー用CSS*/ 50.navToggle { 51 display: block; 52 position: fixed; /* bodyに対しての絶対位置指定 */ 53 right: 13px; 54 top: 12px; 55 width: 42px; 56 height: 51px; 57 cursor: pointer; 58 z-index: 5; 59 text-align: center; 60} 61 62.navToggle span { 63 display: block; 64 position: absolute; /* .navToggleに対して */ 65 width: 30px; 66 border-bottom: solid 3px rgb(28, 92, 145); 67 -webkit-transition: .35s ease-in-out; 68 -moz-transition: .35s ease-in-out; 69 transition: .35s ease-in-out; 70 left: 6px; 71} 72 73.navToggle span:nth-child(1) { 74 top: 9px; 75} 76 77.navToggle span:nth-child(2) { 78 top: 18px; 79} 80 81.navToggle span:nth-child(3) { 82 top: 27px; 83} 84 85.navToggle span:nth-child(4) { 86 border: none; 87 color: #eee; 88 font-size: 9px; 89 font-weight: bold; 90 top: 34px; 91} 92 93/*ハンバーガーメニュータップ後CSS*/ 94/* 最初のspanをマイナス45度に */ 95.navToggle.active span:nth-child(1) { 96 top: 18px; 97 left: 6px; 98 border-bottom: solid 3px #eee; 99 -webkit-transform: rotate(-45deg); 100 -moz-transform: rotate(-45deg); 101 transform: rotate(-45deg); 102} 103 104/* 2番目と3番目のspanを45度に */ 105.navToggle.active span:nth-child(2), 106.navToggle.active span:nth-child(3) { 107 top: 18px; 108 border-bottom: solid 3px #eee; 109 -webkit-transform: rotate(45deg); 110 -moz-transform: rotate(45deg); 111 transform: rotate(45deg); 112} 113``````JS 114$(function() { 115 $('.navToggle').click(function() { 116 $(this).toggleClass('active'); 117 if ($(this).hasClass('active')) { 118 $('#globalMenuSp').addClass('active'); 119 } else { 120 $('#globalMenuSp').removeClass('active'); 121 } 122 }); 123});
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/07 00:43