Word Pressでオリジナルテーマを作っています。
その中で今、ハンバーガーメニューを作成しているのですが、うまく動きをつけられません。解決策を教えていただきたいです。お願いいたします。
######このハンバーガーメニューに付けたい動きは以下の通りです。
- ホバーしたときに3本線の一番上の線と一番下の線が上下に広がる。
- クリックすると3本線からバツ印に変わり、ドロップダウンメニューが開く。このバツの状態の時はホバーしても線が動かないようにしたい。
- 再度クリックすると、最初の3本線の状態に戻り、ドロップダウンメニューも閉じる。
######現在、上手くいかない挙動が以下の通りです。
- 上記の2番のバツの状態の時に、ホバーすると線が動く。上記の1番の挙動がバツの状態のときにも適用されてしまっているようです。
HTML
1<button type="button" id="navbutton" class="navbutton"> 2 3 <span></span> 4 <span></span> 5 <span></span> 6 7</button>
CSS
1//ハンバーガーメニューの見た目 2 .navbutton, 3 .navbutton span { 4 display: inline-block; 5 transition: all .4s; 6 box-sizing: border-box; 7 } 8 .navbutton { 9 position: relative; 10 width: 50px; 11 height: 44px; 12 background: none; 13 border: none; 14 appearance: none; 15 cursor: pointer; 16 } 17 .navbutton span { 18 position: absolute; 19 left: 0; 20 width: 100%; 21 height: 4px; 22 background-color: #333; 23 border-radius: 4px; 24 } 25 .navbutton span:nth-of-type(1) { 26 top: 0; 27 } 28 .navbutton span:nth-of-type(2) { 29 top: 20px; 30 } 31 .navbutton span:nth-of-type(3) { 32 bottom: 0; 33 } 34 35//ホバー時の挙動 36 .navbutton:not(.active):hover span:nth-of-type(1) { 37 top: -6px; 38 } 39 .navbutton:not(.active):hover span:nth-of-type(3) { 40 bottom: -6px; 41 } 42 43//クリック時の挙動 44 .navbutton.active span:nth-of-type(1) { 45 transform: translateY(20px) rotate(-45deg); 46 } 47 .navbutton.active span:nth-of-type(2) { 48 opacity: 0; 49 } 50 .navbutton.active span:nth-of-type(3) { 51 transform: translateY(-20px) rotate(45deg); 52 } 53 54 .navbutton:focus { 55 outline: 0; 56 } /*
JavaScript
1 jQuery(function() { 2 3//クリック時の挙動 4 jQuery('.navbutton').on('click', function () { 5 jQuery(this).addClass('active'); 6 }, function () { 7 jQuery(this).removeClass('active'); 8 }); 9 10//ドロップダウンメニューが開く 11 jQuery("#navbutton").click(function() { 12 jQuery("#header-nav-wrap").slideToggle(); 13 }); 14 15 });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。