Facebook的なスマホナビゲーションを実現できるレスポンシブなjQueryプラグイン作った。

レスポンシブなサイトの場合、グローバルナビゲーションの表示をどうするか悩む方は多いと思います。そんな方に便利なjQueryプラグインを作成しましたので公開します。jquery.responsive-nav は、グローバルナビゲーションをレスポンシブにし、スマートフォンの場合はFacebookのような横からニュッとスライドしてくるナビゲーション(オフキャンバスナビ)に変化させるjQueryプラグインです。

ダウンロード

ソースはGitHubにて公開しています。

デモ

jquery.responsive-nav の基本的な使い方

jQuery、jquery.responsive-nav.js の3つのjsファイルと、jquery.responsive-nav.css を読み込みます。そして任意の要素に対して responsive_nav()を実行します。

JavaScript

jQuery( function( $ ) {
	// 例として #global-nav に対して responsive_nav() を実行します。
	$( '#global-nav' ).responsive_nav();
} );

HTML

<div id="responsive-btn"></div>は任意の場所に設置できます。PC用のナビゲーションを表示するかスマートフォン用のナビゲーションを表示するかは、<div id="responsive-btn"></div>display: blockdisplya: noneかで判断されます。display: blockだとスマートフォン用ナビゲーションを表示、display: noneだとPC用のナビゲーションを表示します。デフォルトはdisplay: noneとなるので、メディアクエリーで一定の幅より狭くなったときにdisplay: blockにするように設定します。

ナビゲーション自体は、ul・liの入れ子でマークアップする必要があります。その外側は特に指定はありませんが、responsive_nave()を実行するための要素で囲む必要があります。

<div id="responsive-btn"></div>

<div id="global-nav">
	<ul>
		<li><a href="">ホーム</a></li>
		<li>
			<a href="">会社案内</a>
			<ul>
				<li><a href="">組織図</a></li>
				<li>
					<a href="">部署案内</a>
					<ul>
						<li><a href="">営業部</a></li>
						<li><a href="">経理部</a></li>
						<li><a href="">システム開発部</a></li>
						<li><a href="">サポート</a></li>
					</ul>
				</li>
			</ul>
		</li>
		<li><a href="">よくあるご質問</a></li>
		<li><a href="">お問い合わせ</a></li>
	</ul>
<!-- end #global-nav" --></div>

CSS

スマートフォン用のCSSはガチガチにあたっていますが、PC用のナビゲーションはデザインに自由度をもたすため、最低限のスタイルのみあてています。上記のデモではPC用のナビゲーションのデザインを行うために、下記のスタイルを追加であてています。また、メディアクエリーで幅が939px以下になったときにスマートフォン用のナビゲーションに変化するように設定しています。

#global-nav {
	background-color: #3886FC;
}
#global-nav ul li a {
	color: #fff;
	background-color: #3886FC;
	font-size: 12px;
	padding: 5px 20px;
	text-decoration: none;
}
#global-nav ul li a:hover {
	background-color: #5093F8;
}
#global-nav ul li ul {
	display: none;
}
@media screen and ( max-width: 939px ) {
	#responsive-btn {
		display: block;
		position: absolute;
		right: 20px;
		top: 10px;
	}
}
  • ブックマーク
  • Feedly

この記事を書いた人

キタジマタカシ

長崎在住、フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開しています。現在は WordPress 有料テーマ Snow Monkey を開発・販売しています。