LoginSignup
3
3

More than 3 years have passed since last update.

【jQuery】領域外のクリック時にメニューを閉じるようにする

Last updated at Posted at 2020-11-20

jQueryでスマホ用メニューをクリックした際にメニュー以外の領域をクリックした際にメニューを閉じるようにしたい。

このサイトで✕ボタンでしかメニューが閉じないのは不便。
Image from Gyazo

メニュー以外をクリックした際にこんな感じで閉じたい。
Image from Gyazo

実装

今回のサイトはWordPressで作っていたため、テーマにのっとってコードを追記する必要があります。

そこで、devモードでコードを見ると、ハンバーガーメニューをクリックするとmenu-toggleクラスにactiveクラスが付与されるようにしていて、activeクラスがある場合はメニューがひらっきぱなしになるように組まれていました。

//メニューが閉じてるとき
<div class="menu-toggle">

//メニューを開いてるとき
<div class="menu-toggle active">

というわけで、メニュー外をクリックしたら、menu-toggleの部分からactiveを取り除くコードを記載すればOKです。


  jQuery(document).ready(function($) {
    var nav = $('.menu-toggle');
    $('.main-section').click(function() {
     //ここでnavの部分がactiveクラスを持っているか確認
      if(nav.hasClass('active')) {
        $('.menu-toggle').removeClass('active');
      }
    });
  });

jQuery(document).ready(function($)としているのは、サイトのHTMLを完全に読み込んでからこのjQueryを実行させたいからです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3