ハンバーガーメニューの中にアコーディオンメニューを設定し、
ページ内リンクに設定すると閉じれません。
ハンバーガーメニューの中にアコーディオンメニューを設定し、
ページ内リンクに設定したところ、ハンバーガーメニューが開いたままの
状態になってしまいます。
自分なりに調べてみましたが、わからず解決にいたらなかったので、
質問させていただきました。
コーディング初心者のため、汚いコードで大変申し訳ございませんが、
ご教授いただけますと、幸いです。
よろしくお願いいたします。
html <div id="glo-bal-nav"> <label for="menu_bar1">練習1</label> <input type="checkbox" id="menu_bar1"/> <ul id="link1"> <li><a href="">test1</a></li> <li><a href="">test2</a></li> <li><a href="">test3</a></li> </ul> <label for="menu_bar2">練習2</label> <input type="checkbox" id="menu_bar2"/> <ul id="link2"> <li><a href="">test1</a></li> <li><a href="">test2</a></li> <li><a href="">test3</a></li> </ul> <label for="menu_bar3">練習3</label> <input type="checkbox" id="menu_bar3"/> <ul id="link3"> <li><a href="">test1</a></li> <li><a href="">test2</a></li> <li><a href="">test3</a></li> </ul> </div>
jQuery <script> $(function(){ $(".btn-gnavi").on("click", function(){ var leftVal = 0; if($(this).hasClass("open")) { leftVal = -300; $(this).removeClass("open"); } else { $(this).addClass("open"); } $("#glo-bal-nav").stop().animate({ left: leftVal }, 200); }); }); </script>
CSS #glo-bal-nav{ position: fixed; top: 0; left: -300px; width: 300px; height: 100%; padding-top: 50px; background: #fafafa; font-size: 16px; z-index: 2; overflow: scroll; } #glo-bal-nav a{ display: block; padding: 15px; text-decoration: none; color: #000; } label { display: block; margin: 0 0 4px 0; padding : 15px; line-height: 1; color :#fff; background : #000; cursor :pointer; position: relative; top: 50px; } label:after{ content: ""; display: block; width: 8px; height: 8px; border-top: #fff 2px solid; border-right: #fff 2px solid; -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); position:absolute; right: 5%; top: 0; bottom: 15%; margin: auto; } #glo-bal-nav input[type=checkbox]:checked + label:after { content: ""; display: block; width: 8px; height: 8px; border-top: #fff 2px solid; border-right: #fff 2px solid; -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); position: absolute; right: 2%; top: 7%; bottom: 0; margin: auto; } input { display: none; } #glo-bal-nav ul { margin: 0; padding: 0; background :#f4f4f4; list-style: none; } #glo-bal-nav li { height: 0; overflow: hidden; -webkit-transition: all 0.5s; -moz-transition: all 0.5s; -ms-transition: all 0.5s; -o-transition: all 0.5s; transition: all 0.5s; } #menu_bar1:checked ~ #link1 li, #menu_bar2:checked ~ #link2 li, #menu_bar3:checked ~ #link3 li{ height: auto; opacity: 1; } #menu_bar1:checked ~ #link1 li:last-child, #menu_bar2:checked ~ #link2 li:last-child, #menu_bar3:checked ~ #link3 li:last-child{ padding-bottom: 30px; } #menu_bar1:checked ~ #link1 li:first-child, #menu_bar2:checked ~ #link2 li:first-child, #menu_bar3:checked ~ #link3 li:first-child{ margin-top: 50px; } .btn-gnavi { position: relative; width: 30px; height: 24px; box-sizing: border-box; z-index: 3; cursor: pointer; -webkit-transition: all 400ms; transition: all 400ms; border: none; outline: none; background: transparent; } .btn-gnavi span { position: absolute; right: 0; width: 30px; height: 4px; background: #666; border-radius: 10px; -webkit-transition: all 400ms; transition: all 400ms; } .btn-gnavi span:nth-child(1) { top: 0; } .btn-gnavi span:nth-child(2) { top: 10px; } .btn-gnavi span:nth-child(3) { top: 20px; } .btn-gnavi.open span { background: #666; } .btn-gnavi.open span { width: 24px; }

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