Bootstrap タブ(Tab)プラグイン
タブは、切り替え可能なコンテンツ領域を作成するための柔軟なプラグインです。
使用方法
- Bootstrap と jQuery ファイルを導入します。
- 基本的な HTML 構造を作成します。
- すべてのタブコンテンツを囲む
.nav-tabs
クラス - 各タブの
<li>
要素(対応するコンテンツ領域へのリンクを含む) - 各コンテンツ領域の
<div>
要素(.tab-pane
クラスを使用)
- すべてのタブコンテンツを囲む
- 最初のタブに
.active
クラスを追加して、デフォルトで表示されるようにします。
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Contact</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
<div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">...</div>
</div>
JavaScript 制御
$('#myTab a').click(function (e) { e.preventDefault() $(this).tab('show') })
コードを使用すると、タブをクリックしたときにページがジャンプせず、.tab('show')
メソッドを使用して対応するコンテンツが表示されます。
フェードイン・フェードアウト効果
.tab-pane
要素に.fade
クラスを追加すると、フェードイン・フェードアウト効果を実現できます。- 最初の
.tab-pane
要素に.in
クラスを追加すると、ページの読み込み時にすぐに表示されます。
メソッド
メソッド | 説明 |
---|---|
.tab('show') |
ターゲットのタブを表示します。 |
.tab('dispose') |
タブプラグインを破棄します。 |
イベント
イベント | 説明 |
---|---|
show.bs.tab |
タブが表示されようとしているときにトリガーされます。 |
shown.bs.tab |
タブが表示されたときにトリガーされます。 |
hide.bs.tab |
タブが非表示になろうとしているときにトリガーされます。 |
hidden.bs.tab |
タブが非表示になったときにトリガーされます。 |
参考資料
よくある質問
Q1: タブをクリックしてもコンテンツが切り替わりません。
A1: 以下の点をチェックしてください。
- HTML の構造が正しいこと。
- JavaScript コードが正しく実装されていること。
- Bootstrap と jQuery が正しく読み込まれていること。
Q2: 特定のタブをデフォルトで表示するにはどうすればよいですか?
A2: デフォルトで表示したいタブの <li>
要素に .active
クラスを追加します。また、対応するコンテンツ領域の <div>
要素にも .active
と .show
クラスを追加します。
Q3: タブのフェードイン・フェードアウト効果を無効にするにはどうすればよいですか?
A3: .tab-pane
要素から .fade
クラスを削除します。