前提・実現したいこと
ドロワーメニューのページ内リンクをクリックした時にメニューを閉じるようにしたいです。
ドロワーメニュー内のリンクをクリックすると該当箇所まで移動はしますが、メニューが閉じずに開いたままになってしまいます。
該当のソースコード
html
1<div class="drawer_menu"> 2<div class="menu-trigger"> 3<span></span> 4<span></span> 5<span></span> 6</div> 7<nav> 8<ul> 9<li><a href="#○">○○○○</a></li> 10<li><a href="#○">○○○○</a></li> 11<li><a href="#○">○○○○</a></li> 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</ul> 17</nav> 18<div class="overlay"></div> 19</div> 20 21
css
1.overlay { 2 content: ""; 3 display: block; 4 width: 0; 5 height: 0; 6 position: absolute; 7 top: 0; 8 left: 0; 9 z-index: 2; 10 opacity: 0; 11 transition: opacity .5s; 12} 13 14.overlay.open { 15 width: 100%; 16 height: 100%; 17 opacity: 1; 18} 19 20main { 21 height: 100%; 22 min-height: 100vh; 23 background-color: #eee; 24 transition: all .5s; 25} 26 27main.open { 28 transform: translateX(-250px); 29} 30 31.menu-trigger { 32 display: inline-block; 33 width: 36px; 34 height: 28px; 35 vertical-align: middle; 36 cursor: pointer; 37 position: absolute; 38 top: 10px; 39 right: 0; 40 z-index: 999; 41} 42.menu-trigger span { 43 display: inline-block; 44 box-sizing: border-box; 45 position: absolute; 46 left: 0; 47 width: 100%; 48 height: 4px; 49 background-color: rgb(16, 69, 153, 1); 50 transition: all .5s; 51} 52.menu-trigger.active span { 53 background-color: #fff; 54} 55.menu-trigger span:nth-of-type(1) { 56 top: 0; 57} 58.menu-trigger.active span:nth-of-type(1) { 59 transform: translateY(12px) rotate(-45deg); 60} 61.menu-trigger span:nth-of-type(2) { 62 top: 12px; 63} 64.menu-trigger.active span:nth-of-type(2) { 65 opacity: 0; 66} 67.menu-trigger span:nth-of-type(3) { 68 bottom: 0; 69} 70.menu-trigger.active span:nth-of-type(3) { 71 transform: translateY(-12px) rotate(45deg); 72} 73.drawer_menu nav { 74 width: 350px; 75 height: 100%; 76 padding-top: 100px; 77 background-color: rgb(68, 85, 142, 0.95); 78 position: fixed; 79 top: 0; 80 right: 0; 81 z-index: 10; 82 transform: translate(350px); 83 transition: all .5s; 84} 85.drawer_menu nav.open { 86 transform: translateZ(0); 87} 88.drawer_menu nav ul { 89 padding: 30px; 90} 91.drawer_menu nav li { 92 text-align: left; 93 font-size: 1.8rem; 94} 95.drawer_menu nav li a { 96 color: #fff; 97 display: block; 98 padding: 3% 0; 99}
JavaScript
1$(function() { 2 $('.menu-trigger').on('click', function() { 3 if ($(this).hasClass('active')) { 4 $(this).removeClass('active'); 5 $('main').removeClass('open'); 6 $('nav').removeClass('open'); 7 $('.overlay').removeClass('open'); 8 } else { 9 $(this).addClass('active'); 10 $('main').addClass('open'); 11 $('nav').addClass('open'); 12 $('.overlay').addClass('open'); 13 } 14 }); 15 $('.overlay').on('click', function() { 16 if ($(this).hasClass('open')) { 17 $(this).removeClass('open'); 18 $('.menu-trigger').removeClass('active'); 19 $('main').removeClass('open'); 20 $('nav').removeClass('open'); 21 } 22 }); 23});
試したこと
同じような質問を閲覧したり、調べたりして試してみたのですがなかなかうまくいきませんでした。
JavaScript初心者のためご教示いただけましたら幸いです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/14 04:34
2019/06/14 04:49
2019/06/14 05:20
2019/06/14 05:31
2019/06/14 05:47