Javascript

jQuery UIのタブメニュー

Category

Javascript

jQuery UIとは、jQuery公式のユーザインターフェース(UI)用のライブラリのことですが、これを活用することで、カレンダー・タブメニュー・アコーディオン・ダイアログ・エフェクト・表示切替・ドラッグ移動・サイズ変更・スライダー等、様々なユーザインターフェース(UI)を簡単に導入することができます。
今回は、jQuery UIのタブメニューについて紹介します。

Keyword:jQuery,jQuery UI,タブメニュー

jQuery UIのタブメニュー

以下の順で紹介していきます。
テキストリンクをクリックすると、その箇所までページがスクロールします。

jQuery UIのサイトから必要なライブラリをダウンロードする

以下のページへアクセス
⇒ jQuery UIサイト

1.タブメニュー実装用に必要なライブラリを選択する

jQuery UIのサイトから必要なライブラリをダウンロードする

補足

“Deselect all components”をクリックし、全てのチェックを外します。

次に、Widgetsの項目から”Tabs”をクリックします。
UI Coreの項目の”Core”と”Widgets”には、自動的にチェックが入ります。
2012.7.23時点の最新バージョン1.8.21を使用します。

2.オリジナルのテーマで作成する

オリジナルのテーマで作成する

補足

右側にある”design a custom theme”をクリックします。

画面が切り替わりますので、”Roll Your Own”タブが選択されていることを確認し、”Font Settings”から始まる各項目の値を変更していくと、右側にオリジナルのテーマ結果が反映されます(今回タブメニューを作成しますので、”Tabs”の画面を確認します)。

3.Galleryから既存のテーマを選択する

Galleryから既存のテーマを選択する

補足

Galleryから既存のテーマを指定する場合、”Gallery”タブを選択します。

サムネイル表示されているテーマから好みのものを選択すると、右側にテーマ結果が反映されます(オリジナルのテーマより簡単にタブメニューを作成できます)。
後に紹介するデモページでは、Galleryのテーマを使用しています。

4.テーマをダウンロードする

テーマをダウンロードする

補足

Galleryで選択したテーマをダウンロードしてみましょう。

”Gallery”タブから”Roll Your Own”タブに切り替えると、Galleryで選択したテーマが反映された状態で”Downloadボタン”が表示されますので、クリックしてファイルをダウンロードします。

5.ダウンロードしたファイルを確認する

ダウンロードしたファイルを確認する

補足

“jquery-ui-バージョン.custom.zip”というzip圧縮されたファイルがダウンロードできますので、解凍し中身を見てみると、サンプルのhtmlファイル・CSSファイル・Javascriptファイル等が入っています。

使用するのは、jQueryの2ファイル、CSSの1ファイル、CSSで使用する画像ファイルです(同梱されているアイコン画像は、使わないのであれば削除しても構いません)。
htmlファイルはソースの参考用に使用してください(使用したいサイト構成に合わせて書き換えます。また、このhtmlファイルは、アイコン等タブメニュー以外のものも含まれていたり、文字コードがiso-8859-1になっていたり、ヘッダーにCSSが書かれていたりするので、ソースを参考にしながら、サイト構成に合わせて書き換えます)。

ファイル側の設定とオプション

タブメニューを表示させたいファイルのヘッダーに以下を記述します。

index.html(ヘッダー)

<head>
<link type="text/css" href="css/○○○○○/jquery-ui-1.8.21.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.21.custom.min.js"></script>
<script type="text/javascript">
$(function() {
    $('#tabs').tabs();
});
</script>
</head>

補足

ヘッダーにダウンロードしたライブラリのCSSとJavascriptを読み込みます。

2行目はCSSファイルで、”○○○○○”は、ライブラリをダウンロードした際、テーマ名の付いたフォルダ内にCSSファイルとCSSで使用する画像が格納されています(テーマ名の付いたディレクトリが必要ない場合、ディレクトリとここの記述を削除します)。

3行目はjQuery、4行目はjQuery UIのJavascriptファイルです。

5~9行目のスクリプトの記述は、bodyタグ内に記述しても構いません。

タブメニューを表示させたいファイルのbodyタグに以下を記述します。

index.html(bodyタグ)

<body>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Menu1</a></li>
<li><a href="#tabs-2">Menu2</a></li>
<li><a href="#tabs-3">Menu3</a></li>
</ul>
<div id="tabs-1">
Menu1の内容を表示
</div>
<div id="tabs-2">
Menu2の内容を表示
</div>
<div id="tabs-3">
Menu3の内容を表示
</div>
</div>
</body>

補足

2行目のid属性値は、ヘッダーに記述したスクリプトと合わせます。
“$(‘#tabs’)”の”tabs”にする。

3~7行目がタブ表示部分。
対応するid属性値をフラグメント形式(#~)で設定します。

8~16行目がそれぞれのタブに切り替えた際に表示される部分です。

ダウンロードしたファイル内に含まれるindex.htmlには、ヘッダー部分にCSSが記述されています。このCSSを使用する場合、ヘッダーの記述をjquery-ui-1.8.21.custom.cssにコピーしておきましょう。細かい調整が必要な場合は、CSSを編集し調整してください。

いくつかjQuery UI Tabsに用意されているオプションを紹介します。

オプション

// 指定したタブを選択状態にする
$('#tabs').tabs({ selected: 1 });

// 選択したタブをクリックした際に折りたたむ
$('#tabs').tabs({ collapsible: true });

// Cookieにキャッシュを保存する
$('#tabs').tabs({ cookie: { expires: 7} });

// フェードイン・フェードアウトしながらタブを切り替える
$('#tabs').tabs({ fx: { opacity: 'toggle', duration: 'slow' } });

// スライドしながらタブを切り替える
$('#tabs').tabs({ fx: { height: 'toggle', duration: 'slow' } });

// フェードイン・フェードアウト・スライドしながら自動でタブを切り替える
$('#tabs').tabs({ fx: { opacity: 'toggle', height: 'toggle', duration: 'slow' } }).tabs('rotate', 3000);

補足

●指定したタブを選択状態にする
“selected: 0″で1番初めのタブが選択状態になります。
例では”1″ですので、2番目のタブが選択状態になります。

●選択したタブをクリックした際に折りたたむ
選択時に表示されているタブをクリックすると、タブコンテンツを折りたたみます。
タブ部分のみが表示されます。

●Cookieにキャッシュを保存する
例では”expires: 7″としていますので、7日間Cookieを保存します。
ユーザーがブラウザキャッシュをクリアしなければ、設定した期間”以前開いていたタブが選択状態になっている”ということです。
また、”jquery.cookie.js”も必要ですので、以下サイトよりダウンロードして読み込むようにしてください。
⇒ jquery-cookieをダウンロード

●フェードイン・フェードアウトしながらタブを切り替える
opacity: ‘toggle’でフェードイン・フェードアウト、duration: ‘slow’で速さを指定します(durationには、normalやfastもあります)。

●スライドしながらタブを切り替える
height: ‘toggle’でスライド、duration: ‘slow’で速さを指定します(durationには、normalやfastもあります)。

●フェードイン・フェードアウト・スライドしながら自動でタブを切り替える
フェードイン・フェードアウト・スライドに関しては上記と同じです。
‘rotate’, 3000で自動でタブが切り替わります。
3000は1/1000秒です(3秒)。

デモページでの表示確認

デモページを用意しました。
以下のテキストリンクをクリックするとページが開きます。

パターン1 ⇒ デフォルト
パターン2 ⇒ フェードイン・フェードアウト
パターン3 ⇒ スライド
パターン4 ⇒ パターン2~3+ローテーション

補足

[参考サイト]
・jQuery UI公式サイト -tabs-
・jQuery UI 日本語リファレンス

List

関連記事(※当記事と関連性が高いと思われる記事)

WordPress本体のjQueryと公式版のjQuery

2012/07/14
WordPress本体のjQueryと公式版のjQuery
スコア:30 ※スコアの数値が大きいほど、関連性の高い記事です。 WordPress本体のjQueryと公式版のjQueryの違い WordPress本体にはjQueryが含まれており、デフォルト状態でjQueryを使用している場合、... 続きを読む...

jQueryでフォントサイズ変更

2012/02/02
jQueryでフォントサイズ変更
スコア:27 ※スコアの数値が大きいほど、関連性の高い記事です。 jquery.jsとjquery.cookie.jsを用意する jQueryのサイトよりjquery.jsをダウンロード ⇒ jquery.jsダウンロードページ ※2... 続きを読む...

jQuery 1.9系

2013/02/17
jQuery 1.9系
スコア:24 ※スコアの数値が大きいほど、関連性の高い記事です。 バージョン1.9系が最後のInternet Explorer 6~8対応バージョンに 2013.1.15にjQueryの最新版1.9と開発版の2.0 BETA1が公開さ... 続きを読む...

HTML5導入前に覚えておきたいこと

2011/12/22
HTML5
スコア:5 ※スコアの数値が大きいほど、関連性の高い記事です。 SafariやFirefoxといったモダンブラウザは以前からHTML5の新要素に対応していましたが、Internet Explorerが対応していなかったため、以前と同... 続きを読む...

おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)

ページの先頭へ