Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
jQuery UI逆引きリファレンス

jQuery UI逆引きリファレンス

Tabsウィジェットでタブ・パネルを作成するには?

2013年7月25日

パネルの端に配置されたタブで内容を切り替えられるタブ・パネルを簡単に実装できる、jQuery UIのTabsウィジェットの基本的な使い方を説明する。

  • このエントリーをはてなブックマークに追加

jQuery UIとは?

 jQuery UIは、jQueryを拡張するライブラリ(プラグイン)の一種で、名前のとおり、ユーザー・インターフェイス(UI)に関わる機能を提供します。jQuery UIの導入方法や使い方、jQuery UIが提供する主要なコンポーネントについては、「jQuery UI逆引きリファレンス: jQuery UIを利用するには?」を参照してください。

 タブ・パネルとは、パネルの端(基本的に上端)に配置されたタブをクリックすることで(もしくはマウス・ポインターを当てることで)パネルの内容を切り替えられる、定型的なUIの1つです。jQuery UIでタブ・パネルを実装するには、Tabsウィジェットを利用します。

 例えば以下は、[Backbone.js]/[Knockout.js]/[AngularJS]という3つのタブを持つ、基本的なタブ・パネルのコード例(と、その実行結果の画面)です。

HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Tabsウィジェット</title>
<link type="text/css" rel="stylesheet"
  href="http://code.jquery.com/ui/1.10.3/themes/cupertino/jquery-ui.min.css" />
<script type="text/javascript"
  src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript"
  src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function() {
  $('#tabs').tabs({ heightStyle: 'content' });
});
</script>
</head>
<body>
<!--タブ・パネル全体を定義-->
<div id="tabs">
  <!--タブ・リストを定義-->
  <ul>
    <li><a href="#backbone">Backbone.js</a></li>
    <li><a href="#knockout">Knockout.js</a></li>
    <li><a href="#angular">AngularJS</a></li>
  </ul>
  <!--パネル本体を定義-->
  <div id="backbone">
    <p>Backbone.jsはクライアントサイドMVCフレームワークの...</p>
  </div>
  <div id="knockout">
    <p>Knockout は Model-View-ViewModel(MVVM)パターンを...</p>
  </div>
  <div id="angular">
    <p>Angular.jsは、Googleから提供されている軽量なJavaScript...</p>
  </div>
</div>
</body>
</html>
基本的なタブ・パネルを表示するコード(tabs.html)
[Knockout.js]タブをクリック

[Knockout.js]タブをクリック

Tabsウィジェットで生成したタブ・パネル

 Tabsウィジェットを利用するには、以下のルールに沿ってマークアップを用意してください。

  • タブを<ul>/<li>要素によるリストで定義
  • パネル本体を<div>要素で準備
  • タブ配下のアンカー・タグ(=<a>タグ)のリンク先として、対応するパネル(=<div>要素)のid値を指定
  • タブ・パネル全体を<div>要素でくくる

 マークアップの準備ができたら、下記の構文のtabsメソッドでTabsウィジェットを呼び出します。

[構文]Tabsウィジェット

$(タブ・パネル).tabs({ パラメーター名: 値, ... })

 tabsメソッドには、ハッシュ形式で以下のようなパラメーターを指定できます(カッコ内はデフォルト値)。

(1)activeパラメーター(0)

 デフォルトでアクティブにするパネルを表します。先頭のパネルは0番目と数えますので、例えば3番目のパネルを有効にするには、「active: 2」とします。

(2)collapsibleパラメーター(false)

 trueを指定した場合、開いているタブをさらにクリックしたときに、パネルを折り畳みます。以下は、折り畳み機能を有効にした場合のタブ・パネルの表示です。

タブ・パネルを折り畳んだところ

(3)disabledパラメーター(false)

 無効にするタブを表します。「disabled: [1, 2]」のように配列の形式で複数のタブを指定することもできます。trueを指定した場合、全てのタブを無効に、false(デフォルト)では全てのタブが有効になります。

2番目のタブを無効にしたところ

(4)eventパラメーター(click)

 Tabsウィジェットでは、タブのクリックによってパネルを切り替えます。例えば、これをマウス・ポインターが乗ったタイミングで切り替えるならば、「event: mouseover」のように指定します。

(5)heightStyleパラメーター(content)

 パネルの高さを決めるルールを指定します。指定できる値は、以下のとおりです。

設定値概要
auto 最も高いパネルに合わせて、高さを統一
fill 親要素の高さに合わせる
content パネル個々の高さに合わせて変動(デフォルト)
heightStyleパラメーターの設定値

 サンプルではcontentを指定していますので、コンテンツ量によってパネルの高さが変化しますが、決められた範囲にパネルを収めたいならば、「fill」を指定してください。高さを固定はしないが、パネル同士の高さは統一しておきたいならば、「auto」を指定します。

(6)show/hideパラメーター

 パネルを表示/非表示する際のエフェクトを指定します。show/hideパラメーターは、以下のいずれかの型で指定できます。

概要
Boolean エフェクトを有効にするか(trueで有効)
Number エフェクトの所要時間(ミリ秒)
String エフェクト名(後日、別稿にて解説)
Object 以下のプロパティを持ったオブジェクト
プロパティ概要
effect エフェクト名
delay 遅延時間(ミリ秒)
duration エフェクトの所要時間(ミリ秒)
easing 変化の度合い
show/hideパラメーターの設定

 例えば、以下は非表示時のエフェクトをexplode(500ミリ秒で実行)とする例です。

JavaScript
$('#tabs').tabs({ hide: { effect: 'explode', duration: 500 } });
非表示時のエフェクトをexplode(500ミリ秒で実行)とする例(JavaScript)

 本稿の続編「タブ・パネルの挙動をカスタマイズするには?」も併せてご参照ください。

※以下では、本稿の前後を合わせて5回分(第1回~第5回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

jQuery UI逆引きリファレンス
1. jQuery UIを利用するには?

jQuery UIの基本機能を目的別リファレンスの形式でまとめる連載スタート。jQuery UIで提供されているコンポーネントと、基本的な利用法を説明する。

jQuery UI逆引きリファレンス
2. DatePickerウィジェットで日付選択ボックスを作成するには?

日付選択ボックスを実装するためのjQuery UIウィジェット「DatePicker」の基本的な使い方を説明。オプションにより、挙動や見栄えをさまざまにカスタマイズできる。

jQuery UI逆引きリファレンス
3. 【現在、表示中】≫ Tabsウィジェットでタブ・パネルを作成するには?

パネルの端に配置されたタブで内容を切り替えられるタブ・パネルを簡単に実装できる、jQuery UIのTabsウィジェットの基本的な使い方を説明する。

jQuery UI逆引きリファレンス
4. タブ・パネルの挙動をカスタマイズするには?

Tabsウィジェットのイベントやメソッドを利用しながら、タブ・パネルのさまざまな制御方法を紹介する。

jQuery UI逆引きリファレンス
5. Sortableウィジェットで並べ替え可能なリストを生成するには?

指定された要素配下の子要素群をドラッグ操作で並べ替え可能にするSortableウィジェットの基本的な使い方を説明する。

サイトからのお知らせ

Twitterでつぶやこう!