ハンバーガーメニュー内のページ内リンクをクリックした時に、リンク先までスライドして、ハンバーガーメニューを閉じたいです。
今までと同じコードを使用しているはずなのですが、うまく実装されません。
スペルなど確認しましたが、わかりませんでした。
どこが原因でしょうか。
HTML
1<header> 2 <h1 class="site-title"> 3 <a href="./nmt.html"> 4 <img src="img/site-logo.png" class="logo" alt="ロゴ"> 5 </a> 6 </h1> 7 8 <!-- ハンバーガーメニュー部分 --> 9<div class="drawer" id="burger"> 10 11 <!-- ハンバーガーメニューの表示・非表示を切り替えるチェックボックス --> 12 <input type="checkbox" id="drawer-check" class="drawer-hidden" > 13 14 <!-- ハンバーガーアイコン --> 15 <label for="drawer-check" class="drawer-open" id="click"> 16 <span></span> 17 <p class="menu color" id="icon" >menu</p> 18 </label> 19 20 <!-- メニュー --> 21 <nav class="drawer-content"> 22 <ul class="drawer-list" id="humber"> 23 <li> 24 <img src="img/simbol-logo.png" ait="ロゴ"> 25 </li> 26 <li class="drawer-item"> 27 <a href="#about-us" style="text-decoration:none;">About</a> 28 </li><!-- /.drawer-item --> 29 <li class="drawer-item"> 30 <a href="#contents" style="text-decoration:none;">Contents</a> 31 </li><!-- /.drawer-item --> 32 <li class="drawer-item"> 33 <a href="#topics" style="text-decoration:none;">Topics</a> 34 </li><!-- /.drawer-item --> 35 <li class="drawer-item"> 36 <a href="#contact" style="text-decoration:none;">Contact</a> 37 </li><!-- /.drawer-item --> 38 </ul><!-- /.drawer-list --> 39 </nav> 40 <span class="burger-musk" id="musk"></span> 41</div><!--drawer--> 42 43</header> 44 45<div class="contents"> 46<div class="first"> 47 <div class="company"> 48 <div class="copy-size"> 49 <p class="copy">デザインで人を笑顔にする会社<br>DIGSMILE INC.</p> 50 <h1 class="copy design">DESIGN<br>FOR<br>SMILE</h1> 51 </div> 52 </div> 53</div><!--first--> 54</div><!--contents-->
CSS
1header { 2 height: 60px; 3 width: auto; 4 position: absolute; 5} 6 7.logo { 8 margin-left: 50px; 9} 10 11.contents { 12 height: 90%; 13} 14/*ファーストビュー*/ 15.contents { 16 height: 100%; 17} 18 19.first { 20 height: 100%; 21 background-image: url(img/kv-img.png); 22 height: 90%; 23 width: 80%; 24 background-size: cover; 25 z-index: 5; 26 padding: 0; 27 margin: 0; 28} 29 30.first::after { 31 content: ""; 32 display: block; 33 position: absolute; 34 top: 0; 35 right: 0; 36 background-color: #222; 37 width: 50%; 38 height: 100%; 39 z-index: -1; 40} 41 42/* チェックボックスは非表示に */ 43.drawer-hidden { 44 display: none; 45} 46 47/* ハンバーガーアイコンの設置スペース */ 48.drawer-open { 49 display: flex; 50 height: 60px; 51 width: 15%; 52 justify-content: center; 53 align-items: center; 54 position: relative; 55 z-index: 100;/* 重なり順を一番上に */ 56 cursor: pointer; 57 float: right; 58 z-index: 100; 59 position: fixed; 60 top: 0px; 61 right: 0px; 62} 63 64/* 三本線のうち一番上の棒の位置調整 */ 65.drawer-open span:before { 66 bottom: 8px; 67} 68 69/* 三本線のうち一番下の棒の位置調整 */ 70.drawer-open span:after { 71 top: 8px; 72} 73 74/* アイコンがクリックされたら真ん中の線を透明にする */ 75#drawer-check:checked ~ .drawer-open span { 76 background: rgba(255, 255, 255, 0); 77} 78 79/* アイコンがクリックされたらアイコンが×印になように上下の線を回転 */ 80#drawer-check:checked ~ .drawer-open span::before { 81 bottom: 0; 82 transform: rotate(45deg); 83} 84#drawer-check:checked ~ .drawer-open span::after { 85 top: 0; 86 transform: rotate(-45deg); 87} 88/* メニューのデザイン*/ 89.drawer-content { 90 width: 30%; 91 height: 100%; 92 position: fixed; 93 top: 0; 94 left: 100%;/* メニューを画面の外に飛ばす */ 95 z-index: 99; 96 background: rgba(12, 12, 12, 0.911); 97 transition: .5s; 98 text-align: center; 99 padding-top: 100px; 100} 101 102.drawer-content ul { 103 list-style: none; 104} 105 106.drawer-content a { 107 color: white; 108} 109 110/* アイコンがクリックされたらメニューを表示 */ 111#drawer-check:checked ~ .drawer-content { 112 left: 70%;/* メニューを画面に入れる */ 113} 114/* チェックボックスは非表示に */ 115.drawer-hidden { 116 display: none; 117} 118/*ハンバーガーメニュー*/ 119.drawer-open span, 120.drawer-open span::before, 121.drawer-open span::after { 122 content: ''; 123 display: block; 124 height: 3px; 125 width: 25px; 126 border-radius: 3px; 127 background: #fff; 128 transition: 0.5s; 129 position: absolute; 130} 131 132.drawer-item { 133 font-size: 30px; 134 padding-bottom: 40px; 135} 136 137.drawer { 138 display: block; 139} 140 141.burger-musk { 142 background-color: rgba(56, 56, 56, 0.603); 143 width: 100%; 144 height: 100%; 145 position: fixed; 146 padding: 0; 147 margin: 0; 148 top: 0; 149 z-index: 50; 150 display: none; 151} 152 153.drawer-open.change span, 154.drawer-open.change span:before, 155.drawer-open.change span:after { 156 content: ''; 157 display: block; 158 height: 3px; 159 width: 25px; 160 border-radius: 3px; 161 background: #222; 162 transition: 0.5s; 163 position: absolute; 164} 165.drawer-open .change { 166display: flex; 167height: 60px; 168width: 15%; 169justify-content: center; 170align-items: center; 171position: relative; 172z-index: 100;/* 重なり順を一番上に */ 173cursor: pointer; 174float: right; 175z-index: 100; 176position: fixed; 177top: 0px; 178right: 0px; 179} 180 181body.nonscroll { 182 overflow: hidden; 183} 184.menu { 185 display: block; 186 font-size: 1rem; 187 text-transform: uppercase; 188 color: #fff; 189 font-weight: bold; 190 float: right; 191 margin-left: 100px; 192 padding-top: 0; 193 font-family: 'arial black'; 194} 195.color { 196 color:#fff!important; 197} 198.copy { 199 color: #fff; 200 display: block; 201 margin-bottom: 10px; 202} 203 204.copy-size p { 205 padding-bottom: 10px; 206 font-size: 20px; 207} 208 209.design { 210 font-family: 'arial black'; 211 margin-top: 0; 212 font-size: 80px; 213} 214 215.company { 216 z-index: 100; 217 padding-top: 180px; 218 margin-right: -180px; 219 display: flex; 220 justify-content: flex-end; 221} 222 223.company h1 { 224 font-size: 70px; 225}
jQuery
1/*スクロールで色変更*/ 2jQuery(window).on('scroll', function () { 3 var imgHeight = $('.contents').outerHeight(); 4 5 /*色変更*/ 6 if (imgHeight < jQuery(this).scrollTop()) { /*背景の下に来たとき*/ 7 $('.menu').removeClass('color');/*menuを黒に*/ 8 $('.menu').css('color','#222') 9 $('.drawer-open').addClass('change');/*ハンバーガーメニューを黒に*/ 10 } else { 11 jQuery('.menu').addClass('color'); /*menuを白に*/ 12 $('.drawer-open').removeClass('change');/*ハンバーガーメニューを白に*/ 13 } 14}) 15 16$(function(){ 17 var imgHeight = $('.contents').outerHeight(); 18 $('.drawer-open').on('click',function(){ 19 if($(window).scrollTop()<imgHeight-50){/*ハンバーガーメニューが黒より上*/ 20 $('.burger-musk').fadeToggle(300); 21 $('body').toggleClass('nonscroll');/*ハンバーガーメニュー開いたときスクロールしない*/ 22 }else {/*ハンバーガーメニューが黒より下*/ 23 $(this).toggleClass('change');/*メニューを黒白に変化*/ 24 $('.burger-musk').fadeToggle(300); 25 $('body').toggleClass('nonscroll');/*ハンバーガーメニュー開いたときスクロールしない*/ 26 $('.menu').toggleClass('color'); 27 } 28 }) 29 }) 30 if(('.drawer-open p').hasClass('color')){ 31 $('.menu').css('color','#fff'); 32 } 33 34 $(function(){ 35 $('a[href^="#"]').click(function(){ 36 var speed = 1000; 37 var href= $(this).attr('href'); 38 var target = $(href == "#" || href == "" ? 'html' : href); 39 $("html, body").animate( 40 {scrollTop: target.offset().top}, speed, "swing"); 41 return false; 42 }); 43 }); 44 $('#humber a[href]').on('click', function(event) { 45 $('.drawer-open').trigger('click'); 46 });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/01 06:23