前提・実現したいこと
素人ながら、シングルページにてwebサイトを構築中で、wordpressにて作成中です。
動きをつけるにはJavaScriptが必要ということで、少しづつ進めています。
モバイル用のハンバーガーメニュー内のリンクをクリックするとメニューが閉じるようにしたいと考えています。
本を読んだり、似たような質問を見たり調べたりして、こちらにたどり着きました。
JavaScriptに関してはど素人です。何卒よろしくお願いいたします。
発生している問題・エラーメッセージ
【現状】 ハンバーガーメニュー内のページ内リンクをクリックとすると該当箇所まで移動するものの、ハンバーガーメニューが閉じずに開いたまま。 【やりたい事】 ハンバーガーメニュー内のリンクをクリックで該当箇所まで移動と同時にハンバーガーメニューを閉じたいです。
該当のソースコード
HTML
1<header id="home" class="header page-header"> 2 <div class="header_inner"> 3 <div class="header_logo"> 4 <a href="<?php echo home_url(); ?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/img/common/logo.png" alt="hoge"></a> 5 </div> 6 </div> 7 8 <div class="header_links"> 9 <nav class="gnav"> 10 <ul id="soi_menu"> 11 <li><a href="<?php echo home_url(); ?>">HOME</a></li> 12 <li><a href="#hoge">hoge</a></li> 13 <li><a href="#hoge">hoge</a></li> 14 <li><a href="#hoge">hoge</a></li> 15 <li><a href="#hoge">hoge</a></li> 16 </ul> 17 </nav> 18 </div> 19 20 <svg class="header_menu" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" 21 width="30" height="30" viewBox="0 0 30 30"> 22 <defs><clipPath id="clip-path"><rect width="30" height="30" fill="none"/></clipPath> 23 </defs> 24 <g clip-path="url(#clip-path)"> 25 <rect class="header_border header_border-1" width="30" height="2" transform="translate(0 0)" /> 26 <rect class="header_border header_border-2" width="30" height="2" transform="translate(0 10)" /> 27 <rect class="header_border header_border-3" width="30" height="2" transform="translate(0 20)" /> 28 </g> 29 </svg> 30 </header>
JavaScript
1 var $menu = $('.header_menu'); 2 var $slideNav = $('.header_links'); 3 $menu.on('click', function() { 4 if ($menu.hasClass('is-active') == false) { 5 $slideNav.addClass('is-active'); 6 $menu.addClass('is-active'); 7 } else { 8 $slideNav.find('.header_nav').hide(); 9 $slideNav.removeClass('is-active'); 10 $menu.removeClass('is-active'); 11 setTimeout(function() { 12 $slideNav.find('.header_nav').show(); 13 }, 1000); 14 } 15 });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。