ハンバーガーメニューを実装した際に、リンク先をクリックしてもメニューが閉じずに 「×」でしかメニューが閉じず困りました。
調べてなんとか実装できたので備忘録として書いていきます。
実装したときのコード
index.html
<nav>
<h1 class="gn-header__logo">AAA社</h1>
<ul class="gn-header__list">
<li class="gn-header__item"><a href="#feature" class="gn-header__item-link"></a>A</li>
<li class="gn-header__item"><a href="#price" class="gn-header__item-link">B</a></li>
<li class="gn-header__item"><a href="#work" class="gn-header__item-link">C</a></li>
<li class="gn-header__item"><a href="#flow" class="gn-header__item-link">D</a></li>
<li class="gn-header__item"><a href="#contact" class="gn-header__item-link">E</a></li>
</ul>
</nav>
index.html
<!-- burger-menu -->
<div class="burger-btn" id="js-burger-btn">
<span class="bar bar_top"></span>
<span class="bar bar_mid"></span>
<span class="bar bar_bottom"></span>
</div><!-- burger-menu -->
script.js
jQuery(function($){$('.gn-header__item a').on('click', function(){
if (window.innerWidth <= 768) {
$('#js-burger-btn').click();
}
});});
JSでなにが行われているのかをみていきます。
gn-header__item a
をクリックしたとき、もしもinnerWidth
が768px以下であれば,
js-burder-btn
をクリックしてイベント処理を実行させています。
まとめ
こちらのコードで100点なのかどうかはわかりませんが、とりあえず実機でも問題なく動作していますので良いかなって思います。
もう少しjQueryやJSを学習してプログラミング力をつけねば。