Vol.19 jQueryでレスポンシブに対応したドロップダウンメニューをつくる
前回までで完成した【こちら】のWebサイトに、今回はレスポンシブWebデザインに対応したドロップダウンメニューを jQueryを採用し作成していく。レスポンシブWebデザインではよく見かける、下の画像のようなメニューである。ウィンドウサイズが480px以下のときに、このメニューが出現するようになるのだ。

jQuery「MeanMenu」をダウンロード
→MeanMenu
上記リンク先のサイトの右サイドバーの下の「Download ZIP」からダウンロード。解凍してできたフォルダの中にある「jquery.meanmenu.js」ファイルを「sample」フォルダ内「js」フォルダの中に入れる。次に「meanmenu.css」ファイルを「sample」フォルダ内「css」フォルダに入れてやる。
ダウンロードしたファイルをhead内に読み込む
「index.html」
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/responsiveslides.css"> <link rel="stylesheet" href="css/meanmenu.css"> <title>MY BLOG</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.heightLine.js"></script> <script type="text/javascript" src="js/responsiveslides.js"></script> <script type="text/javascript" src="js/responsiveslides.min.js"></script> <script type="text/javascript" src="js/function.js"></script> <script type="text/javascript" src="js/scrolltopcontrol.js"></script> <script type="text/javascript" src="js/jquery.meanmenu.js"></script> <!-- 省略 --> </head>
上記ハイライト部分を、ソース内マウスオーバーで現れる右上「ソースを表示」をクリックしてコピー。これでスタイルシートとスクリプトの読み込みは完了だ。
レスポンシブメニューに指定する要素とオプションを追加する
前々回にhead内に記述するjQueryのオプション設定などのスクリプトをひとまとめにした「function.js」ファイルを作成した。これはhead内をなるべくシンプルにするためであり無論、head内に直接記述してもいい。ここではレスポンシブメニューに指定する要素とオプションを「function.js」に書き込んでいく。
「function.js」
/* レスポンシブメニューオプション */
$(function() {
$('#gnav').meanmenu({
meanMenuClose: "x", // クローズボタン
meanMenuCloseSize: "18px", // クローズボタンのフォントサイズ
meanMenuOpen: "<span /><span /><span />", // 通常ボタン
meanRevealPosition: "right", // 表示位置
meanRevealColour: "", // 背景色
meanScreenWidth: "480", // 表示させるウィンドウサイズ(ブレイクポイント)
});
});
グローバルナビに指定していた「#gnav」を指定する。これで480pxのブレイクポイントで、レスポンシブメニューが現れるようになった。オプションは初期値のままの設定だが、自由にカスタマイズしてもらってもいい。
「meanmenu.css」をカスタマイズ
あとは見た目を微調整してかっこよくしてあげよう。「meanmenu.css」の22行目あたりを下記のように変更して、「margin-bottom: 15px;」を追加。タイトルロゴとレスポンシブメニューの間隔を広げてやる。
「meanmenu.css」
.mean-container .mean-bar {
float: left;
width: 100%;
position: relative;
background: #0c1923;
padding: 2px 0;
min-height: 42px;
z-index: 999999;
margin-bottom: 15px;
}
ちなみに「position: relative;」を「position: fixed;」に変更すると、スクロールしてもメニューは上部で固定されたままになり、いつでもグローバルナビを表示させることが可能になる。どちらでも好きな方を採用してもらいたい。
最後にPCから下記リンクへアクセスし、ウィンドウ幅を伸縮させレスポンシブメニューを試してもらいたい。本日は以上。
【レスポンシブメニュー】

Vol.32 WordPressのindex.phpを分割する
Vol.29 オリジナルテーマをWordPressテンプレートファイル化する(1)
Vol.27 「レスポンシブWebデザイン」実践講座〜完全版〜
Vol.23 レスポンシブWebデザイン「2カラムレイアウト」フルードイメージ + センター揃え
Vol.20 「Viewport resizer」レスポンシブWebデザインの確認ツールはこれだけでOK
Vol.16 「レスポンシブWebデザイン」実践講座〜第一章完結〜
Vol.11 レスポンシブWebデザイン!可変する段組(マルチカラム)を極める(1)
Vol.10 レスポンシブWebデザインでつくる「グローバルナビゲーション」
Vol.6 レスポンシブWebデザインの基本構造
Vol.5 レスポンシブWebデザインとは
Vol.4 実録!レスポンシブWebデザイン シンプル&ハイクオリティーのサイトで学ぶ
Vol.2 Webデザインのカラーを決める











