クリックしたら✖️になるハンバーガーメニューを作成したいのですが、✖️にならず”く”の字になってしまいます。.top_moveと.bottom_moveのところに top:10px;
bottom:10px;と試しに入力しても反応しませんでした。何が原因でしょうか?自分でも調べましたが、解決できないためどなたか教えていただけると助かります。
<nav id="hamburger_menu"> <ul> <li><a href="#concept">Concept</a></li> <li><a href="#service">Service</a></li> <li><a href="#works">Works</a></li> <li><a href="#contact">Contact</a></li> </ul> </nav> <!-- ハンバーガーメニューのアイコン --> <div id="hamburger"> <span class="inner_line" id="line_top"></span> <span class="inner_line" id="line_middle"></span> <span class="inner_line" id="line_bottom"></span> </div> /*ハンバーガーメニュー*/ css #hamburger_menu{ position:absolute; top:0; right:-100%; width:100%; height:100vh; background-color:#282F35; transition:.7s; & ul{ margin:(50vh auto 0); transform:translateY(-50%); text-align: center; & li{ & a{ color:#fff; display:block; padding:10px; font-style: italic; translate:.5s; &:hover{ opacity:30%; } } #hamburger{ display:block; position:absolute; width:30px; height:22px; top:30px; right:30px; transition: 1s; & .inner_line{ display:block; position:absolute; width:30px; height:3px; background-color:#fff; transition:1s; } & #line_top{ top:0; } & #line_middle{ top:10px; } & #line_bottom{ bottom:0; } } & .top_move { transform: rotate(-45deg); } & .middle_move { opacity: 0; } & .bottom_move { transform: rotate(45deg); } & .in{ transform:translateX(-100%); }
/ハンバーガーメニュー/ js
function hamburger() {
document.getElementById('line_top').classList.toggle('top_move');
document.getElementById('line_middle').classList.toggle('middle_move');
document.getElementById('line_bottom').classList.toggle('bottom_move');
document.getElementById('hamburger_menu').classList.toggle('in');
}
document.getElementById('hamburger').addEventListener('click' , function () {
hamburger();
} );
/リンクをクリックでハンバーガーメニュー消える/
$("#hamburger_menu a").on("click", function() {
$("#hamburger_menu").slideToggle();
$(".header_inner").removeClass("in");
});
回答1件
あなたの回答
tips
プレビュー