前提・実現したいこと
現在、コーディングをしているのですがレスポンシブ対応でスマホサイズにした時のハンバーガーメニューを実装してる最中です。
ハンバーガーメニュー部分とメニューの開閉じたいは実装できたのですが、ハンバーガーメニュー内のリンクを押してもx印のままメニューが閉じてしまうので、閉じる際にハンバーガーメニューの形に戻したいです。
発生している問題・エラーメッセージ
ハンバーガーメニュー内のリンクを押して、メニューは自体は閉じるがX印のままになってしまいます。
該当のソースコード
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width,initial-scale=1.0"> 6 <link rel="stylesheet" href="stylesheet.css"> 7 <link rel="stylesheet" href="responsive.css"> 8 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.3/css/all.css" integrity="sha384-SZXxX4whJ79/gErwcOYf+zWLeJdY/qpuqC4cAa9rOGUstPomtqpuNWT9wdPEn2fk" crossorigin="anonymous"> 9 <title>fassion</title> 10</head> 11<body> 12 <header> 13 <img src="images/logo.png" /> 14 <input type="checkbox" id="menu-btn-check"> 15 <label for="menu-btn-check" class="menu-btn"><span></span></label> 16 <input type="checkbox" id="drawer-btn"> 17 <label for="drawer-btn" class="header-menu li a"> 18 19 <nav> 20 <ul class="header-menu"> 21 <li><a href="#top"><i class="fas fa-angle-right"></i>TOP</a></li> 22 <li><a href="#message"><i class="fas fa-angle-right"></i>MESSAGE</a></li> 23 <li><a href="#gallery"><i class="fas fa-angle-right"></i>GALLERY</a></li> 24 <li><a href="#brand"><i class="fas fa-angle-right"></i>BRAND</a></li> 25 <li><a href="#project"><i class="fas fa-angle-right"></i>PROJECT</a></li> 26 <li><a href="#company"><i class="fas fa-angle-right"></i>COMPANY</a></li> 27 </ul> 28 <div class="header-icon"> 29 <a href="#"><i class="fab fa-facebook-square size"></i></a> 30 <a href="#"><i class="fab fa-twitter-square size"></i></a> 31 <a href="#"><i class="fab fa-instagram size"></i></a> 32 <a href="#"><i class="fab fa-youtube-square size"></i></a> 33 </div> 34 </nav> 35 </header> 36 <div class="wrapper"> 37 <div class="sidebar"> 38 <div class="side-contents"> 39 <img class="side-logo" src="images/logo.png"> 40 <ul class="sidebar-list"> 41 <li><a href="#top">TOP</a></li> 42 <li><a href="#message">MESSAGE</a></li> 43 <li><a href="#gallery">GALLERY</a></li> 44 <li><a href="#brand">BRAND</a></li> 45 <li><a href="#project">PROJECT</a></li> 46 <li><a href="#company">COMPANY</a></li> 47 48 </ul> 49 <div class="sidebar-icons"> 50 <a href="#"><i class="fab fa-facebook-square size"></i></a> 51 <a href="#"><i class="fab fa-twitter-square size"></i></a> 52 <a href="#"><i class="fab fa-instagram size"></i></a> 53 <a href="#"><i class="fab fa-youtube-square size"></i></a> 54 </div> 55 </div> 56 </div> 57 <div class="contents"> 58 <a id="top"><img class="top-image" src="images/mainImg.jpg"></a> 59 <div class="message-wrappar"> 60 <a id="message"><h1 class="heading">MESSAGE</h1></a> 61 <p> 62 ホームページサンプル株式会社では最新技術と自然との調和を目指します。革新的な技術で世の中を動かす企業を目指します。ホームページサンプル株式会社。ホームページサンプル株式会社では最新技術と自然との調和を目な技術で世の中を動かす企業を目指します。ホームページサンプル株式会社では最新技術と自然との調和を目指します。革新的な技術で世の中を動かす企業を目指します。 63 </p> 64 </div> 65 </div> 66 <a id="gallery"><div class="center-image"></a> 67 <img src="images/photo01.jpg"><img src="images/photo02.jpg"><img src="images/photo03.jpg"> 68 <img src="images/photo04.jpg"><img src="images/photo05.jpg"><img src="images/photo06.jpg"> 69 <span><img class="big-image" src="images/photo07.jpg"></span> 70 <img src="images/photo08.jpg"><img src="images/photo09.jpg"><img src="images/photo10.jpg"> 71 <img src="images/photo11.jpg"><img src="images/photo12.jpg"><img src="images/photo13.jpg"> 72 </div> 73 <a id="brand"></a><div class="brand-wrappar"></a> 74 </a><h1 class="heading">BRAND</h1></a> 75 <div class="brand-contents"> 76 <div class="brand-item"> 77 <img src="images/logo01.png" alt=""> 78 <p>ホームページサンプル株式会社では最動かす企業を目指します。</p> 79 </div> 80 <div class="brand-item"> 81 <img src="images/logo02.png" alt=""> 82 <p>革新的な技術で世の中を動かす企業を目します。世の中を動かす。</p> 83 </div> 84 <div class="brand-item"> 85 <img src="images/logo03.png" alt=""> 86 <p>株式会社では最動かす企業を目指しますージン企業を目指します。</p> 87 </div> 88 <div class="brand-item"> 89 <img src="images/logo04.png" alt=""> 90 <p>株式会社では最動かす企業を指しますージサン企業を目指します。</p> 91 </div> 92 </div> 93 </div> 94 <a id="project"></a><div class="project-wrappar"></a> 95 <h1 class="heading">PROJECT</h1> 96 <div class="project-contents"> 97 <div class="project-item"> 98 <img src="images/photo14.jpg" alt=""> 99 <p>ホームページサンプル株式会社では最新技術と自然との調和を目指します。革新的な革新的な革新的な技術で世の中を技術で世の中を技術で世の中を動かす企業を目指します。</br></br> 100 101 ホームページサンプル株式会社。ホームページサンプル最新技術と自然との調和を目指します。革新的な技術で世の中を動かす企業を目指します。ホームページサンプル株式会社。ホームページサンプル最新技術と自然との調和を目指し調和を目指し調和を目指します。革新的な技術で世の中を動かす企業を目指します。</p> 102 </div> 103 <div class="project-item"> 104 <img src="images/photo15.jpg" alt=""> 105 <p>ホームページサンプル株式会社では最新技術と自然との調和を目指します。革新的な革新的な革新的な技術で世の中を技術で世の中を技術で世の中を動かす企業を目指します。</br></br> 106 107 ホームページサンプル株式会社。ホームページサンプル最新技術と自然との調和を目指します。革新的な技術で世の中を動かす企業を目指します。ホームページサンプル株式会社。ホームページサンプル最新技術と自然との調和を目指し調和を目指し調和を目指します。革新的な技術で世の中を動かす企業を目指します。</p> 108 </div> 109 110 </div> 111 112 </div> 113 <a id="company"><div class="conpany-wrappar"></a> 114 <h1 class="heading">COMPANY</h1> 115 <div class="conpany-contents"> 116 <p class="adress">〒103-1234</br> 117 見本県見本市仮区見本町1-3-5</br> 118 119 TEL 01234-567-8901</br> 120 121 e-Mail info@example.com</br> 122 123 営業時間 10:00〜20:00(水曜定休)</br> 124 125 ※都合により休業する場合がございます 126 </p> 127 <div class="ggmap"> 128 <iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d12794.37516750043!2d136.931998!3d36.708298!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x45b484ff8fb88473!2z44GE44Gq44G75YyW5bel77yI5qCq77yJIOWvjOWxseW3peWgtA!5e0!3m2!1sja!2sus!4v1624311571496!5m2!1sja!2sus" width="200" height="200" style="border:0;" allowfullscreen="" loading="lazy"></iframe> 129 </div> 130 131 132 </div> 133 134 </div> 135 </div> 136 <footer> 137 <p>Copyright(c) 2016 Sample Inc. All Rights Reserved. Design by <a href="#"><span>http://f-tpl.com</a></span></p> 138 </footer> 139 140</body> 141</html>
CSS
1/* ハンバーガーメニュー↓↓*/ 2.menu-btn { 3 position: fixed; 4 top: 10px; 5 right: 8px; 6 display: flex; 7 height: 40px; 8 width: 40px; 9 justify-content: center; 10 align-items: center; 11 z-index: 90; 12 background-color: rgb(0, 0, 0) 13} 14.menu-btn span, 15.menu-btn span:before, 16.menu-btn span:after { 17 content: ''; 18 display: block; 19 height: 2px; 20 width: 18px; 21 background-color: #ffffff; 22 position: absolute; 23 transition: 0.3s; 24} 25.menu-btn span:before { 26 bottom: 6px; 27} 28.menu-btn span:after { 29 top: 6px; 30} 31 32input[type="checkbox"]:checked ~ .menu-btn span { 33 background-color: rgba(255, 255, 255, 0);/*メニューオープン時は真ん中の線を透明にする*/ 34 transition: 0.1s; 35} 36input[type="checkbox"]:checked ~ .menu-btn span::before { 37 bottom: 0; 38 transform: rotate(135deg); 39 40} 41input[type="checkbox"]:checked ~ .menu-btn span::after { 42 top: 0; 43 transform: rotate(-135deg); 44} 45 46#menu-btn-check{ 47 position: absolute; 48 right: -100px; 49 top: 0px; 50 transform: scale(1.5); 51 opacity: 0; 52 53} 54/* ハンバーガーメニュー↑↑*/ 55nav{ 56 text-align: left; 57 background-color: black; 58 transition: 0.1s; 59 z-index: 10; 60 display: none; 61} 62.header-menu li{ 63 padding: 16px 0; 64 border-bottom: 1px solid white; 65} 66.header-menu li a{ 67 font-family: 'Modern Antiqua', 'Noto Sans JP',serif; 68 font-size: 14px; 69} 70.header-menu li a:hover{ 71 text-decoration: underline; 72} 73.header-menu .fas{ 74padding: 0 10px; 75} 76.header-icon{ 77 padding: 15px 0 5px 0; 78 border-bottom: 1px solid white; 79} 80.header-icon .fab{ 81 padding: 0 10px; 82} 83 84#drawer-btn{ 85 position: absolute; 86 right: -100px; 87 top: 20px; 88 transform: scale(1.5); 89 opacity: 0; 90 z-index: 1000; 91}
jQuery
1<script> 2 $(function(){ 3 /* ここからコードを書く */ 4 $(".menu-btn").on("click", function(){ 5 $("nav").slideToggle(); 6 $("nav").toggleclass("open"); 7 }); 8 $(".header-menu li a").on("click", function(){ 9 $("nav").slideToggle(); 10 $("nav").toggleclass(); 11 12 }); 13 14 }); 15 </script>
試したこと
ハンバーガーメニュー内のリンクとハンバーガーメニューを実装の際のチェックボックスと紐づければいいのかと思い色々試しましたが、そうするとハンバーガーメニューの動きが上手く作動しなかったりと中々上手くいきませんでした。
補足情報(FW/ツールのバージョンなど)
jQueryの読み込みソースは下記です
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>jQueryを少し訂正しました。jQueryは今回初めて使うので、コードの抜け漏れ等ありましたら教えて下さい。その他のCSSやHTMLも覚えて間もないので間違えてましたらご教授お願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。