ハンバーガーメニューでメニューを押すと薄い黒背景が出てメニュー外でも閉じるように実装したのですが、×印を押した時だけ黒背景だけ消えてくれません。ググりいろんな方の参考にやってみたのですが思うような挙動にならず苦戦しています。ご教授いただけないでしょうか。
HTML
1<!-- burger-btn --> 2 <div class="overlay"></div> 3 <button class="p-burger__btn"> 4 <div class="p-burger__open-btn"> 5 <span class="bar p-burger__top"></span> 6 <span class="bar p-burger__midl"></span> 7 <span class="bar p-burger__bottom"></span> 8 </div> 9 </button><!-- //burger-btn --> 10 11
SCSS
1// burger-btn 2.p-burger__btn { 3 display: none; 4 @include tab { 5 display: block; 6 position: relative; 7 background: $sub_color; 8 cursor: pointer; 9 width: 40px; 10 height: 35px; 11 border-radius: 5px; 12 margin-left: auto; 13 z-index: 1000; 14 15 .p-burger__open-btn { 16 transition: all 0.4s; 17 } 18 19 .bar { 20 display: block; 21 height: 3px; 22 width: 50%; 23 left: 10px; 24 background-color: $base_color; 25 transition: all 0.4s; 26 position: absolute; 27 border-radius: 2px; 28 } 29 .p-burger__top { 30 top: 7px; 31 } 32 .p-burger__midl { 33 top: 15px; 34 } 35 .p-burger__bottom { 36 top: 23px; 37 } 38 } 39} 40 41.p-burger__btn.close .p-burger__top{ 42 top: 8px; 43 left: 10px; 44 transform: translateY(6px) rotate(-135deg); 45 width: 50%; 46} 47.p-burger__btn.close .p-burger__midl{ 48 opacity: 0; 49} 50.p-burger__btn.close .p-burger__bottom { 51 top: 20px; 52 left: 10px; 53 transform: translateY(-6px) rotate(135deg); 54 width: 50%; 55} 56 57.fexed { 58 position: fixed; 59} 60 61.p-header__nav { 62 @include tab { 63 background: $sub_color; 64 position: fixed; 65 width: 60%; 66 height: 100vh; 67 z-index: 999; 68 top: 0; 69 right: -120%; 70 transition: all 0.6s; 71 opacity: .9; 72 } 73 &.close { 74 right: 0; 75 } 76} 77.overlay { 78 display: none; 79 position: fixed; 80 top: 0; 81 left: 0; 82 background-color: rgba(0, 0, 0, 0.5); 83 width: 100%; 84 height: 100%; 85 z-index: 10; 86} 87
js
1$(".p-burger__btn").click(function () { 2 $(this).toggleClass('close'); 3 $(".p-header__nav").toggleClass('close'); 4 $('body').toggleClass('fexed'); 5 $('.overlay').fadeIn(); 6}); 7 8$(".overlay,.p-header__nav").click(function () { 9 $("body").removeClass("fexed"); 10 $(".p-burger__btn").removeClass('close'); 11 $(".p-header__nav").removeClass('close'); 12 $('.overlay').fadeOut(); 13});
回答1件
あなたの回答
tips
プレビュー