メニュー以外の箇所をタップするとメニューが自動で戻るナビゲーション

UIを意識したくて作ったやつ。
メニューをスライドさせる動きとclassを付けるのをjQueryで行っています。

ハンバーガーメニューは以前作ったこちらを使いました。
CSSだけで作るハンバーガーメニュー

縦にメニューが出てくるナビゲーションですが、メニュー以外をタップした時に自動でナビが戻ります。

See the Pen 1709101 by M.Ueda (@nekuta) on CodePen.

.navをタップした時、.header_sp_navと.main_coverにactiveというクラスをつけます。
main_coverは予めposition:fixed;で固定し、大きさをブラウザ全体にしておいて、z-index:-1を掛け、重ね順を下にしておきます。activeが付いた時にz-indexの値を大きくして、重ね順を上に持ってきます。

js(iQuery)

$(function () {
	var sp_nav = $('.header_sp_nav');
	var nav = $('.nav');
	var main_cover = $('.main_cover');
	sp_nav.on('click', function () {
		nav.slideToggle();
		sp_nav.toggleClass('active');
		main_cover.toggleClass('active'); //nav以外をタップした時 
		if (sp_nav.hasClass('active')) {
			//もし.header_sp_navに'active'というクラスがあったら
			main_cover.on('click', function () {
				sp_nav.removeClass('active');
				main_cover.removeClass('active'); nav.slideUp();
			});
		}
	});
});

.hasClass(‘クラス名’)でその要素に指定のクラス名があるかどうか判断できます。そのクラスがある場合はtrue、ない場合はfalseを返します。クラス名は変数でも取得可能。