2020.09.06

jQuery

jQueryプラグイン drawer.jsの使い方

デモページはこちら

ハンバーガーメニューが実装できるjQueryプラグイン、drawer.jsの使い方です。使用にはjQuery以外にdrawer.css、iscroll.js、drawer.jsの読み込みが必要です。CDNも提供されています。

<link href="https://cdnjs.cloudflare.com/ajax/libs/drawer/3.2.2/css/drawer.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/iScroll/5.2.0/iscroll.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/drawer/3.2.2/js/drawer.min.js"></script>

htmlの記述は大きく分けて3つあります。bodyタグへのクラス追加、開く・閉じるボタンの追加、展開メニューの追加です。

bodyタグへのクラス追加です。クラス名drawerはjQueryのセレクタ、クラス名drawer--rightはハンバーガーメニューを右側から開きます。

<body class="drawer drawer--right">

開く・閉じるボタンの追加です。

<button type="button" class="drawer-toggle drawer-hamburger">
	<span class="sr-only">toggle navigation</span>
	<span class="drawer-hamburger-icon"></span>
</button>

展開メニューの追加です。最後のメニューはテスト用にページ内リンクにしています。

<nav class="drawer-nav">
	<ul class="drawer-menu">
		<li><a href="#">メニュー01</a></li>
		<li><a href="#">メニュー02</a></li>
		<li><a href="#">メニュー03</a></li>
		<li><a href="#">メニュー04</a></li>
		<li><a href="#page01">ページ内リンク</a></li>
	</ul>
</nav>

CSSの記述ではdrawer.cssを上書きしますが必須ではありません。PCサイトでハンバーガーメニューを非表示にしています。また、開く・閉じるボタンはposition: fixed;からposition: absolute;へ変更して画面追従をさせていません。

@media screen and (min-width:769px) { 
	.drawer-hamburger {
		display: none;
	}
}
.drawer-hamburger {
	position: absolute;
	top: 10px;
}
.drawer-menu li {
	padding: 20px 0 0;
	font-weight: bold;
	text-align: center;
}
.drawer-menu li a:hover {
	opacity: 1;
}

最後にjQueryの記述です。デフォルトではページ内リンククリック時にハンバーガーメニューが閉じないので、$('.drawer').drawer('close');で閉じるようにしています。

$(function() {
	$('.drawer').drawer();
	$('.drawer-menu li a').on('click', function() {
		$('.drawer').drawer('close');
	});
});

関連記事

2021.01.04

jQuery

トップへ戻るボタンをフッターの上部に表示

デモページはこちら jQueryでフッターの高さを取得し、ユーザーがページ最下部までスクロールしても、トップへ戻るボタンをフッターよりも上部に表示します。 フッ…

2020.09.21

jQuery

jQueryで兄弟要素を取得(next・nextAll・prev・prevAll・siblings)

デモページはこちら jQueryで兄弟要素(同階層の要素)を取得するメソッドのまとめです。対象要素の直後の要素を取得するnext、対象要素の直後以降の要素を全て…

2020.10.04

jQuery

jQueryのtextメソッド・htmlメソッドで要素を取得または変更

デモページはこちら jQueryのtextメソッドとhtmlメソッドで要素を取得または変更します。textメソッドとhtmlメソッドは機能が似ていますが細かい部…

2021.03.05

jQuery

jQueryのremoveAttrメソッド・removeDataメソッドで要素の属性を削除

デモページはこちら jQueryのremoveAttrメソッドとremoveDataメソッドで要素の属性を削除します。removeDataメソッドはカスタムデー…

2020.09.13

jQuery

jQueryのDeferredオブジェクトを利用した同期処理

デモページはこちら svgロードアニメーションをフェードアウトする処理を、jQueryのDeferredオブジェクトを利用して同期処理(非同期処理を待つ処理)で…

上に戻る