前提・実現したいこと
<実現したいこと>
CSS:ハンバーガーメニュー、リンククリックしたら閉じたい
<前提>
ハンバーガーメニューのリンクをクリックしても、
ページ自体の遷移はしているが、メニュバーは開いたまま
ハンバーガーメニューは、html,cssのみで制作
jQueryでも対応可能
発生している問題・エラーメッセージ
閉じるボタンを押さないとメニューが閉じない
該当のソースコード
HTML
1 <header id="hdr"> 2 <input id="navToggle" type="checkbox" name="toggler"> 3 <label for="navToggle" class="navBtn"><span></span><span></span><span></span></label> 4 5 <div class="gnav"> 6 <nav class="gnavCont"> 7 <ul class="primary-menu"> 8 <li><a href="#section1">Home</a></li> 9 <li><a href="#section2">About</a></li> 10 <li><a href="#section3">Company</a></li> 11 <li><a href="#section4">Contact</a></li> 12 </ul> 13 </div> 14 </div> 15 </header>
CSS
1 2header#hdr { 3 overflow: visible; 4 height: auto; 5 position: fixed; 6 top: 0; 7 left: 0; 8 width: 100%; 9 z-index: 990; 10 margin: 0; 11 pointer-events: none; 12} 13 14header#hdr .navBtn { 15 display: inline-block; 16 transition: all .4s; 17 box-sizing: border-box; 18 position: relative; 19 width: 30px; 20 height: 22px; 21 pointer-events: auto; 22} 23header#hdr .navBtn span { 24 display: inline-block; 25 transition: all .4s; 26 box-sizing: border-box; 27 position: absolute; 28 left: 0; 29 width: 100%; 30 height: 2px; 31 background-color: #333333; 32} 33header#hdr .navBtn span:nth-of-type(1) { 34 top: 0; 35} 36header#hdr .navBtn span:nth-of-type(2) { 37 top: 10px; 38} 39header#hdr .navBtn span:nth-of-type(3) { 40 bottom: 0; 41} 42header#hdr #navToggle:checked ~ .navBtn span:nth-of-type(1) { 43 -webkit-transform: translateY(10px) rotate(-45deg); 44 transform: translateY(10px) rotate(-45deg); 45} 46header#hdr #navToggle:checked ~ .navBtn span:nth-of-type(2) { 47 opacity: 0; 48} 49header#hdr #navToggle:checked ~ .navBtn span:nth-of-type(3) { 50 -webkit-transform: translateY(-10px) rotate(45deg); 51 transform: translateY(-10px) rotate(45deg); 52} 53 54header#hdr .gnav { 55 display: none; 56 background: rgba(0,0,0,0.8); 57 position: fixed; 58 top: 0; 59 left: 0; 60 width: 100%; 61 height: 100%; 62 z-index: 0; 63 justify-content: center; 64 align-items: center; 65 pointer-events: auto; 66} 67@media (max-width: 767px) { 68 header#hdr .gnav { 69 background: rgba(0,0,0,0.8); 70 } 71 72} 73header#hdr #navToggle:checked ~ .headerCont .lCont .hLogo .hLogoG { 74 display: block; 75} 76header#hdr #navToggle:checked ~ .headerCont .lCont .hLogo .hLogoB { 77 display: none; 78} 79header#hdr #navToggle:checked ~ .navBtn span { 80 background-color: #fff; 81} 82@media (max-width: 767px) { 83 header#hdr #navToggle:checked ~ .headerCont .rCont .hNav { 84 position: fixed; 85 bottom: 4%; 86 left: 0%; 87 } 88} 89header#hdr #navToggle:checked ~ .headerCont .rCont .hNav .nav01 { 90 display: none; 91} 92header#hdr #navToggle:checked ~ .headerCont .rCont .hNav .nav02 { 93 display: -webkit-box; 94 display: -moz-box; 95 display: -ms-flexbox; 96 display: -webkit-flex; 97 display: -moz-flex; 98 display: flex; 99} 100header#hdr #navToggle:checked ~ .gnav { 101 display: -webkit-box; 102 display: -moz-box; 103 display: -ms-flexbox; 104 display: -webkit-flex; 105 display: -moz-flex; 106 display: flex; 107} 108header#hdr #navToggle:checked ~ .gnav .gnavCont { 109 display: -webkit-box; 110 display: -moz-box; 111 display: -ms-flexbox; 112 display: -webkit-flex; 113 display: -moz-flex; 114 display: flex; 115 justify-content: flex-start; 116 align-items: flex-start; 117 width: 100%; 118 box-sizing: border-box; 119 padding: 0 0% 0 11.4%; 120} 121@media (max-width: 767px) { 122 header#hdr #navToggle:checked ~ .gnav .gnavCont { 123 flex-direction: column; 124 height: 70vh; 125 overflow: scroll; 126 -webkit-overflow-scrolling: touch; 127 } 128} 129header#hdr #navToggle:checked ~ .gnav .gnavCont ul li { 130 float: none; 131 margin: 0 0 10px 0; 132 text-align: left; 133} 134header#hdr #navToggle:checked ~ .gnav .gnavCont ul li a { 135 font-size: 1.1rem; 136 transition: .4s; 137} 138@media (max-width: 767px) { 139 header#hdr #navToggle:checked ~ .gnav .gnavCont ul li a { 140 font-size: 1.6rem; 141 } 142} 143header#hdr #navToggle:checked ~ .gnav .gnavCont ul li a:hover { 144 opacity: .6; 145} 146header#hdr #navToggle:checked ~ .gnav .gnavCont ul li{ 147 padding-left: 30px; 148} 149header#hdr #navToggle:checked ~ .gnav .gnavCont ul li > div { 150 margin-bottom: 10px; 151} 152header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(1) { 153 width: 25.5%; 154} 155@media (max-width: 767px) { 156 header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(1) { 157 margin-bottom: 30px; 158 width: 100%; 159 } 160} 161header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(1) li a { 162 color: #fff; 163 font-family: 'Raleway', sans-serif; 164 font-size: 2.0rem; 165 font-weight: bold; 166} 167@media (max-width: 767px) { 168 header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(1) li a { 169 font-size: 2.0rem; 170 } 171} 172header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(2) { 173 width: 25.6%; 174} 175@media (max-width: 767px) { 176 header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(2) { 177 margin-bottom: 0px; 178 width: 100%; 179 } 180} 181header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(3) { 182 width: 25.5%; 183} 184@media (max-width: 767px) { 185 header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(3) { 186 margin-bottom: 30px; 187 width: 100%; 188 } 189} 190header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(4) { 191 width: 22%; 192} 193@media (max-width: 767px) { 194 header#hdr #navToggle:checked ~ .gnav .gnavCont ul:nth-child(4) { 195 margin-bottom: 30px; 196 width: 100%; 197 } 198} 199header#hdr #navToggle:checked ~ .gnav .gnavCont ul li a { 200 color: #cccccc; 201 text-decoration: none; 202} 203 204 205 /*subscstore original css*/ 206 header#hdr #navToggle:checked ~ .gnav .gnavCont ul li a { 207 font-size: 2rem; 208 transition: .4s; 209 } 210 body div[data-reactroot] > div > .border-bottom { 211 background-color: transparent !important; 212 border-bottom: none !important; 213 } 214 .navBtn{ 215 cursor:pointer; 216 } 217 header#hdr ul { 218 padding-left: 0; 219 margin-bottom: 0; 220 } 221 header#hdr li { 222 list-style:none; 223 } 224 header#hdr h1,header#hdr h2,header#hdr h3,header#hdr h4,header#hdr h5,header#hdr h6{ 225 margin-top:0; 226 margin-bottom:0; 227 } 228 header#hdr #navToggle{ 229 display: none; 230 } 231 header#hdr .navBtn{ 232 position: fixed; 233 top: 80px; 234 left: 80px; 235 z-index: 999; 236 } 237 @media (max-width: 767px) { 238 header#hdr .navBtn{ 239 position: fixed; 240 top: 0; 241 left: 0; 242 margin: 4%; 243 z-index: 999; 244 } 245 } 246
試したこと
似たような質問がたくさんあったので、jQueryでの対応を試してみたり、と
やってみましたが、リンククリック⇨メニュー閉じるは実現できませんでした...
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/30 07:23 編集
2020/04/30 07:25
2020/04/30 07:28
2020/04/30 09:40
2020/04/30 09:42
2020/04/30 10:02 編集
2020/04/30 10:04
2020/04/30 11:03
2020/04/30 11:33
2020/04/30 13:48
2020/04/30 14:08 編集
2020/04/30 14:32
2020/04/30 15:05
2020/04/30 15:19
2020/04/30 15:30 編集
2020/04/30 16:19