jQueryライブラリのDrawerは、スマホでよく見かける「ドロワーメニューを簡単に実装できるプラグインで、WordPressのテーマにも導入することが容易でできます。
今回は、jQueryライブラリDrawerのコピペでできるドロワーメニューについてご紹介します。
jQueryライブラリDrawerとは?
jQueryライブラリのDrawerは、ボタンをクリックすると横からスライドして出すことができるプラグインです。
Drawerはレスポンシブデザインにも対応しており、表示されたメニューの高さがウィンドウの高さを超える場合、独立してスクロールします。
利用する際には、jQueryとiScrollというjQueryプラグインもセットで読み込ませる必要があります。
Drawerの実装サンプル
Drawerを使用したメニューのサンプルです。
以下のボタンをクリックすると、左上からメニューが表示されますが、右上から表示させるのも簡単にできます。
Drawerの導入手順
「フォーム」と「レイアウトテンプレート」のメニューを使用して作成します。
jQueryは既に<head>〜</head>
の中で読み込まれていれば問題ありませんが、ない場合は以下のMEMOを見てjQueryもHTMLファイルに書き込みましょう。
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js'></script>
上記のような記述が、htmlファイルの<head></head>
の中に無い場合その中へ貼り付けましょう。
Drawerで必要なファイルをHTMLで記述しまします。
必要なファイルは全てCDNで配信されているので、以下をコピペするだけでOKです。
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/drawer/3.1.0/css/drawer.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/iScroll/5.1.3/iscroll.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/drawer/3.1.0/js/drawer.min.js"></script>
CSSのdrawer.min.cssは必須ではありませんが、drawer.jsとiscroll.jsは必ず記述するようにしましょう。
任意の場所に、ドロワーのHTMLを記述します。
Drawerの挙動は、CSSのdrawer.cssに紐づけられているので、class名はそのままコピペするようにしましょう
<body class="drawer drawer--left">
<header role="banner">
<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" role="navigation">
<ul class="drawer-menu">
<li><a class="drawer-brand" href="#">Brand</a></li>
<li><a class="drawer-menu-item" href="#">Nav1</a></li>
<li><a class="drawer-menu-item" href="#">Nav2</a></li>
</ul>
</nav>
</header>
</body>
JavaScriptのコードを<body>
のクロージングタグ</body>
の直前に記述をすれば、設置完了です。
$(document).ready(function() {
$('.drawer').drawer();
});
コードサンプル一式
HTMLとJavaScriptのコードは色々といじることで、仕様を変更することができます。
以下のHTMLのコードは公式サイトの標準のままで、JavaScriptにパラメータを付けたコードです。
コードを表示する
<body class="drawer drawer--left">
<header role="banner">
<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" role="navigation">
<ul class="drawer-menu">
<li><a class="drawer-brand" href="#">Brand</a></li>
<li><a class="drawer-menu-item" href="#">Nav1</a></li>
<li><a class="drawer-menu-item" href="#">Nav2</a></li>
</ul>
</nav>
</header>
</body>
$(document).ready(function() {
$('.drawer').drawer({
class: {
nav: 'drawer-nav',
toggle: 'drawer-toggle',
overlay: 'drawer-overlay',
open: 'drawer-open',
close: 'drawer-close',
dropdown: 'drawer-dropdown'
},
iscroll: {
// Configuring the iScroll
// https://github.com/cubiq/iscroll#configuring-the-iscroll
mouseWheel: true,
preventDefault: false
},
showOverlay: true
});
});
ドロワーのネイティブなJavaScriptでのスニペット
以下の記事は、jQueryを使わずにドロワーメニューをネイティブなJavaScriptに置き換えたスニペットになっています。
JavaScriptの.addEventListenerのクリックでドロワーメニュー「jQueryは使わない」方は上記の記事を参照くださいませ。
参考サイト
参考Flexible drawer menu using jQuery, iScroll and CSS.Drawer