Bootstrap3の使い方をBootstrap2.xからの変更箇所を交えて解説しています。
プラグインは、個別(Bootstrapの個別*.js
ファイルを使用)、または一括(bootstrap.js
または圧縮版であるbootstrap.min.js
を使用)で追加することができます。
bootstrap.js
とbootstrap.min.js
は、両方とも一つのファイルですべてのプラグインを含みます。
同じ要素上で複数のプラグインのデータ属性を使用しないでください。
例えば、一つのボタンでツールチップとモーダルの両方で使用することはできません。それを実現するためには、ラッピング要素(要素を新たな要素で囲む)を使用してください。
いくつかのプラグインとCSSコンポーネントは、他のプラグインに依存します。個別にプラグインを追加している場合は、ドキュメントの中でこれらの依存関係を確認してください。
また、すべてのプラグインはjQueryに依存していることに注意してください(これはjQueryがプラグインファイルの前に含まれていなければならないことを意味します)。jQueryのどのバージョンがサポートされているかを確認するにはBootstrapのbower.jsonを参照してください(最新版のBootstrap3.2.0でjQuery1.9.0以上)。
JavaScriptを一行も書かずに単にマークアップAPIを通じてすべてのBootstrapのプラグインを使用することができます。
これはBootstrapの最上級のAPIであり、プラグインを使用するときに最初に考慮すべき点です。
いくつかの状況ではこの機能をオフにすることが望ましい場合があります。したがって、またdata-api
と名前空間(ネームスペース)のドキュメント上のすべてのイベントを解除することでデータ属性APIを無効にする機能を提供します。
これは次のようになります。
$(document).off('.data-api')
別の方法として、特定のプラグインをターゲットにdata-apiの名前空間と一緒に名前空間としてプラグインの名前をこのように含めてください。
$(document).off('.alert.data-api')
単にJavaScript APIを通じて、すべてのBootstrapのプラグインを使用することができるはずです。すべての公開APIは、単独または連鎖が可能な方法で実行結果を返します。
$('.btn.danger').button('toggle').addClass('fat')
すべてのメソッドは、オプションのオプションオブジェクト、特定のメソッドをターゲットとした文字列、空欄(デフォルトの動作でプラグインを開始)を受け入れなければなりません:
$('#myModal'.modal() // デフォルトで初期化 $('#myModal').modal({ keyboard: false }) // キーボードなしで初期化 $('#myModal').modal('show') // 初期化して直ちに表示を呼び出す
各プラグインには、Constructor
プロパティにその未加工のコンストラクタを公開します:$ fn.popover.Constructor
特定のプラグインの事例を取得したい場合は、要素から直接取得します:$('[rel=popover]').data('popover')
場合によっては、他のUIフレームワークとBootstrapプラグインを使用する必要があります。このような状況では、名前空間の衝突が時折発生する可能性があります。この問題が発生した場合は、値を元に戻したいプラグインで.noConflict
を呼び出すことができます。
var bootstrapButton = $.fn.button.noConflict() // 以前$.fn.buttonに割り当てられた値に戻す $.fn.bootstrapBtn = bootstrapButton // $().bootstrapBtnにBootstrapの機能を与える
Bootstrapは、ほとんどのプラグインの独自の動作のためのカスタムイベントが用意されています。一般的に、これらは動詞、過去分詞の形態になります-動詞形(例:show
)がイベントの開始時に起動され、その過去分詞形(例:shown
)がアクションの完了時に起動されます。
3.0.0の時点で、すべてのBootstrapのイベントが名前空間化されています。
すべての動詞形のイベントでpreventDefault
機能を提供します。これは起動する前にアクションの実行を停止する機能を提供します。
$('#myModal').on('show.bs.modal', function (e) { if (!data) return e.preventDefault() // モーダルの表示を止める })
【Bootstrap2.xとの変更箇所】
xxx
⇒xxx.bs.***
(***
はプラグイン名)に変更(例:show
⇒show.bs.modal
)Bootstrapは、PrototypeやjQueryのUIのようなサードパーティのJavaScriptライブラリを正式にサポートしていません。.noConflict
と名前空間のイベントにもかかわらず、自分で修正する必要があり互換性の問題がある可能性があります。
シンプルな遷移アニメーション効果を実装できるプラグイン。
シンプルな遷移アニメーションのために、他のJSファイルと一緒にtransition.js
が含まれています。bootstrap.js
(またはbootstrap.min.js
)を使用している場合、すでにそこに含まれているので、改めてこれを追加する必要はありません。
Transition.jsは、transitionEnd
イベントならびにCSS遷移アニメーションエミュレーターのための基本的な助けとなります。CSSの遷移アニメーション効果のサポートをチェックし、かつ接続した遷移アニメーションを受け取るために他のプラグインとともに使用します。
モーダルを実行するためのプラグイン。
<!-- 切り替えボタンの設定 --> <a data-toggle="modal" href="#myModal" class="btn btn-primary">ココを押すと表示します</a> <!-- モーダルの設定 --> <div class="modal hide fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">モーダルのタイトル</h3> </div> <div class="modal-body"> <p>モーダルのコンテンツ</p> </div> <div class="modal-footer"> <button type="button" class="btn" data-dismiss="modal">閉じる</button> <button type="button" class="btn btn-primary">変更を保存</button> </div> </div><!-- /.modal -->
<!-- 切り替えボタンの設定 --> <a data-toggle="modal" href="#myModal" class="btn btn-primary">ココを押すと表示します</a> <!-- モーダルの設定 --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">閉じる</span></button> <h4 class="modal-title" id="myModalLabel">モーダルのタイトル</h4> </div> <div class="modal-body"> <p>モーダルのコンテンツ</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">閉じる</button> <button type="button" class="btn btn-primary">変更を保存</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal -->
【設定】
.btn[data-toggle="modal"][data-target="#ID名"]
(切り替えボタン) + [div.modal.fade[id="ID名"][role="dialog"][aria-labelledby="myModalLabel"][aria-hidden="true"][tabindex="-1"]
> div.modal-dialog
> [div.modal-content
> [div.modal-header
> [button.close[data-dismiss="modal"]
> [<span aria-hidden="true">×</span>
+ <span class="sr-only">閉じる</span>
(ユーザー補助用)]](閉じるボタン) + .modal-title[id="myModalLabel"]
(モーダルのタイトル)] + div.modal-body
(モーダルのコンテンツ) + div.modal-footer
]](モーダル)data-toggle="modal"
と、data-target="#ID名"
かhref="#ID名"
を入れ、div.modal
(ボタンのリンク先)にid="ID名"
を入れるdiv.modal
にアクセシビリティを向上するためにrole="dialog"
、モーダルタイトルのIDを参照するための属性aria-labelledby="myModalLabel"
、モーダルのDOM要素をスキップする支援技術を伝えるaria-hidden="true"
、escキーを押すとモーダルが閉じるようにtabindex="-1"
を入れるbutton.close
にdata-dismiss="modal"
を入れるdiv.modal
上にaria-describedby
を入れてモーダルダイアログの説明をすることもできる【注意】
【変更】
aria-hidden="true"
はbutton
内より独立したspan
に移動し、<span class="sr-only">閉じる</span>
を追加(従来のものでも使用可能)【Bootstrap2.xとの変更箇所】
div.modal.hide
⇒div.modal
(.hide
は不要に)div.modal-dialog
とdiv.modal-content
の追加.modal-title
の追加(タイトルは<h3>
タグに設定する必要がなくなった)
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xx">
<div class="modal-content">
...
</div>
</div>
</div>
●大きめ:.modal-lg
●小さめ:.modal-sm
※参考:標準
【設定】
.modal-dialog
に.modal-xx
(上記の「大きさの種類」から選択)を追加<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> ... </div>
【設定】
.modal
から.fade
を削除モーダルプラグインは、データ属性やJavaScriptを通じて要求に応じて隠されたコンテンツに切り替えます。
また、デフォルトでスクロール動作を無効にするため<body>
に.modal-open
を追加したり、モーダルの外側(背景)をクリックしたときに表示されたモーダルを閉じるためのクリック領域を提供する.modal-backdrop
を生成します。
JavaScriptを記述することなくモーダルを有効にします。
ボタンにコントローラ要素data-toggle="modal"
を、切り替える特定のモーダルを対象とするdata-target="#myModal"
またはhref="#myModal"
と共に設定します。
<button data-toggle="modal" data-target="#myModal">モーダルを起動</button> <a data-toggle="modal" href="#myModal">モーダルを起動</a>
ID myModalについてのJavaScript1行でモーダルを呼び出します。
$('#myModal').modal(options)
オプションは、データ属性やJavaScriptで渡すことができます。データ属性で使用する場合は、data-backdrop=""
のようにdata-
にオプション名を追加します。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
backdrop | boolean or the string 'static' |
true | モーダルの背景をオーバーレイ表示true :有効/false :無効背景のクリックでモーダルを閉じないためには static を指定 |
keyboard | boolean | true | escキーを押すとモーダルを閉じるtrue :有効/false :無効 |
show | boolean | true | 初期化時にモーダルを表示true :有効/false :無効 |
remote | path | false | リモートURLが提供されている場合、jQueryのload メソッドを通じてコンテンツは1回ロードされ.modal-content のdiv内に注入される。data-apiを使用している場合は、別の方法としてリモートソースを指定するにはhref 属性を使用することができる。その一例を以下に示すと: <a data-toggle="modal" href="remote.html" data-target="#modal">ココをクリック</a> |
モーダルとしてコンテンツをアクティブにします。オプションのオプションでobject
を受け付けます。
$('#myModal').modal({ keyboard: false })
手動でモーダルを切り替えます。モーダルが実際に表示または非表示にされる前に呼び出し元に戻ります(つまりshown.bs.modal
またはhidden.bs.modal
イベントが発生する前)。
$('#myModal').modal('toggle')
手動でモーダルを表示します。モーダルが実際に表示される前に呼び出し元に戻ります(つまりshown.bs.modal
イベントが発生する前)。
$('#myModal').modal('show')
手動でモーダルを非表示にします。モーダルが実際に非表示にされる前に呼び出し元に戻ります(つまりhidden.bs.modal
イベントが発生する前)。
$('#myModal').modal('hide')
Bootstrapのモーダルのクラスは、モーダル機能に接続するためにいくつかのイベントを公開しています。
イベントタイプ | 説明 |
---|---|
show.bs.modal | このイベントは、show のインスタンスメソッドが呼び出されたときに直ちに起動。クリックに起因する場合は、クリックされた要素はイベントのrelatedTarget プロパティとして提供。 |
shown.bs.modal | このイベントは、モーダルがユーザーに見えるようになったときに起動。クリックに起因する場合は、クリックされた要素はイベントのrelatedTarget プロパティとして提供。 |
hide.bs.modal | このイベントは、hide のインスタンスメソッドが呼び出されたときに直ちに起動。 |
hidden.bs.modal | このイベントは、モーダルが(CSS遷移の完了を待って)ユーザーに非表示になったときに起動。 |
loaded.bs.modal 新設(3.1.0) |
このイベントは、モーダルがリモートオプションを使用してコンテンツをロードしたときに起動。 |
使用例
$('#myModal').on('hidden.bs.modal', function (e) { // 何かをする... })
ドロップダウンメニューを実装するプラグイン。
【設定】
.dropdown-toggle[data-toggle="dropdown"]
> span.caret
](ドロップダウンボタン) + [ul.dropdown-menu
> li
](ドロップダウンメニュー)データ属性やJavaScriptを通じて親リスト項目に追加された.open
クラスを切り替えることによって、ドロップダウンプラグインは隠されたコンテンツ(ドロップダウンメニュー)に切り替えます。開いたときにメニューの外側をクリックするとドロップダウンメニューを閉じるためのクリック領域としてプラグインも.dropdown-backdrop
を追加します。
注:data-toggle="dropdown"
属性は、アプリケーションレベルでのドロップダウンメニューを閉じる際に依存しているので常にそれを使用することをお勧めします。
ドロップダウンを切り換えるために、リンクまたはボタンにdata-toggle="dropdown"
を加えてください。
<div class="dropdown">
<a data-toggle="dropdown" href="#">ドロップダウンへの切替</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
...
</ul>
</div>
そのままURLを維持するには、href="#"
の代わりにdata-target
属性を使用します。
<div class="dropdown"> <a id="dLabel" role="button" data-toggle="dropdown" data-target="#" href="/page.html"> ドロップダウン <span class="caret"></span> </a> <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> ... </ul> </div>
JavaScriptでドロップダウンを呼び出します。
$('.dropdown-toggle').dropdown()
data-toggle="dropdown"
JavaScriptによってドロップダウンを呼ぶか、その代りにdata-apiを使用するかどうかにかかわらず、data-toggle="dropdown"
は、ドロップダウンの実行要素上で存在することを常に要求されます。
ありません。
指定されたナビゲーションバーやタブ付きナビゲーションのドロップダウンメニューを切り替えます。
すべてのドロップダウンイベントは、.dropdown-menu
の親要素で起動します。
イベントタイプ | 説明 |
---|---|
show.bs.dropdown | このイベントは、表示のインスタンスメソッドが呼び出されたときに直ちに起動。切替アンカー要素は、イベントのrelatedTarget プロパティとして提供。 |
shown.bs.dropdown | このイベントは、ドロップダウンが(CSS遷移の完了を待って)ユーザーに表示されたときに起動。切替アンカー要素は、イベントのrelatedTarget プロパティとして提供。 |
hide.bs.dropdown | このイベントは、非表示のインスタンスメソッドが呼び出されたときに直ちに起動。切替アンカー要素は、イベントのrelatedTarget プロパティとして提供。 |
hidden.bs.dropdown | このイベントは、ドロップダウンが(CSS遷移の完了を待って)ユーザーに非表示になったときに起動。切替アンカー要素は、イベントのrelatedTarget プロパティとして提供。 |
使用例
$('#myDropdown').on('show.bs.dropdown', function () { // 何かをする... })
スクロール位置に応じてナビゲーションのアクティブ状態を切り替えるためのプラグイン。
スクロールしてみてください。
Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.
サイトがページ2になると上部のナビゲーションバーのアクティブの部分がページ2に変わります。
Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard. Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. Tattooed cosby sweater food truck, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1 sartorial. Carles non aesthetic exercitation quis gentrify. Brooklyn adipisicing craft beer vice keytar deserunt.
<body style="padding-top:70px;" data-spy="scroll" data-target=".navbar-collapse"> <div class="navbar navbar-default navbar-fixed-top"> <div class="navbar-header"> <a class="navbar-brand" href="#">ブランド</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="#page1">ページ1</a></li> <li><a href="#page2">ページ2</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">ドロップダウン <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#menu1">メニュー1</a></li> ... </ul> </li> </ul> </div> </div> <div class="container"> <div id="page1"> <h3 class="page-header">ページ1</h3> <p>スクロールしてみてください。</p> ... </div> <div id="page2"> <h3 class="page-header">ページ2</h3> <p>サイトがページ2になると上部のナビゲーションバーのアクティブの部分がページ2に変わります。</p> ... </div> <div id="menu1"> <h3 class="page-header">メニュー1</h3> <p>サイトがメニュー1になると上部のナビゲーションバーのアクティブの部分がドロップダウンに変わり、ドロップダウンメニューのメニュー1がアクティブになります。</p> ... </div> ... </div> </body>
【設定】
body[data-spy="scroll"][data-target=".navbar-collapse"]
簡単にトップバーのナビゲーションにスクロールスパイ動作を追加するために、探りだす要素(最も典型的なのは<body>
)にdata-spy="scroll"
を追加します。その後、任意のBootstrapの.nav
コンポーネントの親要素のIDまたはクラスを使用してdata-target
属性を追加します。
body { position: relative; }
<body data-spy="scroll" data-target=".navbar-example"> ... <div class="navbar-example"> <ul class="nav nav-tabs"> ... </ul> </div> ... </body>
JavaScriptでスクロールスパイを呼び出します。
$('body').scrollspy({ target: '.navbar-example' })
ナビゲーションバーのリンクはリンクが可能なターゲットIDがなければなりません。例えば<a href="#home">home</a>
には<div id="home"></div>
のようにDOM内のどこかに対応させる必要があります。
:visible
ターゲット要素は無視されますjQueryに応じた:visible
でないターゲット要素は無視され、それに対応するナビゲーションの項目がハイライト表示されることはありません。
DOMから要素の追加または除去と併せてスクロールスパイを使用するときは、次のようなリフレッシュ用のメソッドを呼び出す必要があります。
$('[data-spy="scroll"]').each(function () { var $spy = $(this).scrollspy('refresh') })
オプションは、データ属性やJavaScriptで渡すことができます。データ属性の場合はdata-offset=""
のようにdata-
にオプション名を追加します。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
offset | number | 10 | 追従を開始するトップからのスクロール位置(ピクセル単位) |
イベントタイプ | 説明 |
---|---|
activate.bs.scrollspy | このイベントは、新しいアイテムがスクロールスパイによってアクティブ化されるたびに起動。 |
使用例
$('#myScrollspy').on('activate.bs.scrollspy', function () { // 何かをする... })
ナビゲーションで素早いコンテンツの切り替えを実装できるプラグイン。
<ul class="nav nav-tabs"> <li class="active"><a href="#home" data-toggle="tab">ホーム</a></li> <li><a href="#profile" data-toggle="tab">プロフィール</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">ドロップダウン <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#message1" data-toggle="tab">代表から</a></li> ... </ul> </li> </ul> <div class="tab-content" style="margin-top:10px"> <div class="tab-pane active" id="home">ホームの文章です。...</div> <div class="tab-pane" id="profile">プロフィールの文章です。...</div> <div class="tab-pane" id="message1">代表からのメッセージです。...</div> ... </div>
【設定】
ul.nav.nav-tabs
> li
> a[data-toggle="tab"]
](タブ部分) + [.tab-content
> .tab-pane
](文章部分)【注意】
.nav-tabs
にmargin-bottom
のスタイルか.tab-content
にmargin-top
のスタイルを指定<ul class="nav nav-pills"> <li class="active"><a href="#home2" data-toggle="pill">ホーム</a></li> <li><a href="#profile2" data-toggle="pill">プロフィール</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">ドロップダウン <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#message2" data-toggle="pill">代表から</a></li> ... </ul> <div class="tab-content" style="margin-top:10px"> <div class="tab-pane fade in active" id="home2">ホームの文章です。...</div> <div class="tab-pane fade" id="profile2">プロフィールの文章です。...</div> <div class="tab-pane fade" id="messages2">代表からのメッセージです。....</div> ... </div>
【設定】
ul.nav.nav-pills
> li
> a[data-toggle="pill"]
](タブ部分) + [.tab-content
> .tab-pane
](文章部分)【注意】
.nav-pills
にmargin-bottom
のスタイルか.tab-content
にmargin-top
のスタイルを指定JavaScript(各タブを個別に有効化する必要がある)を通じて切替できるタブを有効にします。
$('#myTab a').click(function (e) { e.preventDefault() $(this).tab('show') })
いくつかの方法で個々のタブをアクティブにすることができます。
$('#myTab a[href="#profile"]').tab('show') // タブ名で選択 $('#myTab a:first').tab('show') // 最初のタブを選択 $('#myTab a:last').tab('show') // 最後のタブを選択 $('#myTab li:eq(2) a').tab('show') // (0から数えて)3番目のタブを選択
単に要素上でdata-toggle="tab"
またはdata-toggle="pill"
を指定することで任意のJavaScriptを記述することなくタブまたはピルのナビゲーションを有効にすることができます。タブul
にnav
とnav-tabs
のクラスを追加するとBootstrapのタブスタイルを適用し、nav
とnav-pills
クラスを追加するとピルスタイルを適用します。
<!-- タブナビゲーション --> <ul class="nav nav-tabs"> <li class="active"><a href="#home" data-toggle="tab">ホーム</a></li> <li><a href="#profile" data-toggle="tab">プロフィール</a></li> <li><a href="#messages" data-toggle="tab">メッセージ</a></li> <li><a href="#settings" data-toggle="tab">セッティング</a></li> </ul> <!-- タブ枠 --> <div class="tab-content"> <div class="tab-pane active" id="home">...</div> <div class="tab-pane" id="profile">...</div> <div class="tab-pane" id="messages">...</div> <div class="tab-pane" id="settings">...</div> </div>
タブをフェードインさせるためには.fade
をそれぞれの.tab-pane
に追加してください。最初のタブ枠にはきちんと最初の内容をフェードインさせるためには.in
もつけなければなりません。
<div class="tab-content"> <div class="tab-pane fade in active" id="home">...</div> <div class="tab-pane fade" id="profile">...</div> <div class="tab-pane fade" id="messages">...</div> <div class="tab-pane fade" id="settings">...</div> </div>
タブ要素とコンテンツコンテナをアクティブにします。タブにはDOMのコンテナ接点とをターゲットするdata-target
またはhref
のいずれかを持っている必要があります。
●最初のタブにactive設定していても最後のタブがアクティブになる例
<ul class="nav nav-tabs" id="myTab"> <li class="active"><a href="#home" data-toggle="tab">ホーム</a></li> <li><a href="#profile" data-toggle="tab">プロフィール</a></li> <li><a href="#messages" data-toggle="tab">メッセージ</a></li> <li><a href="#settings" data-toggle="tab">セッティング</a></li> </ul> <div class="tab-content"> <div class="tab-pane active" id="home">...</div> <div class="tab-pane" id="profile">...</div> <div class="tab-pane" id="messages">...</div> <div class="tab-pane" id="settings">...</div> </div> <script> $(function () { $('#myTab a:last').tab('show') }) </script>
イベントタイプ | 説明 |
---|---|
show.bs.tab | このイベントは、タブの表示で起動するが新しいタブの前に表示される。それぞれアクティブなタブとその前のアクティブなタブ(使用可能な場合)をターゲットとするのにevent.target とevent.relatedTarget を使用。 |
shown.bs.tab | このイベントは、タブが表示された後のタブの表示で起動。それぞれアクティブなタブとその前のアクティブなタブ(使用可能な場合)をターゲットとするのにevent.target とevent.relatedTarget を使用。 |
使用例
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { e.target // アクティブなタブ e.relatedTarget // その前のタブ })
ツールチップを実行するためのプラグイン。
リンクの上にカーソルを合わせるかタッチしてください。
HTML
<p><a href="#" data-toggle="tooltip" title="これがツールチップです">リンク</a>の上にカーソルを合わせるかタッチしてください。</p>
実行コード(<script src="js/bootstrap.min.js"></script>
より後に設置)
$("[data-toggle=tooltip]").tooltip()
HTMLコードの場合
<script>
$("[data-toggle=tooltip]").tooltip()
</script>
【設定】
a[data-toggle="tooltip"][title="ツールチップ文"]
【注意】
white-space: nowrap;
を入れる.btn-group
または.input-group
内の要素でツールチップを使用するときは、不必要な副作用(例えば:要素がより広がる/ツールチップの起動時に角丸がなくなる)を回避するため、オプションでcontainer: 'body'
を指定する必要があるdisplay: none;
を指定)でツールチップを表示しようとするのは不可disabled
または.disabled
の要素に追加するためには、<div>
タグの中に要素を置いて、その代わりにツールチップをその<div>
タグに適用させるHTML
<!-- 左に出るツールチップの設定 --> <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="left" title="左に出るツールチップ">ツールチップ(左)</button> <!-- 上に出るツールチップの設定 --> <button type="button" class="btn class="btn btn-default" data-toggle="tooltip" data-placement="top" title="上に出るツールチップ">ツールチップ(上)</button> <!-- 下に出るツールチップの設定 --> <button type="button" class="btn class="btn btn-default" data-toggle="tooltip" data-placement="bottom" title="下に出るツールチップ">ツールチップ(下)</button> <!-- 右に出るツールチップの設定 --> <button type="button" class="btn class="btn btn-default" data-toggle="tooltip" data-placement="right" title="右に出るツールチップ">ツールチップ(右)</button>
【設定】
data-toggle="tooltip"
と同じ要素にdata-placement="xxx"
(xxx
はleft
(左)、top
(上)、bottom
(下)、right
(右)の中から選択)を入れるツールチッププラグインは要求に応じてコンテンツとマークアップを生成し、デフォルトでそれらのトリガー要素の後にツールチップを置きます。
JavaScriptを通してツールチップを起動:
$('#example').tooltip(options)
ツールチップのために必要なマークアップは、ツールチップをつけたいHTML要素にdata
属性とtitle
をつけるだけです。ツールチップの生成するマークアップは、その生成される位置(プラグインによるデフォルトではtop
)を必要としますが、かなりシンプルになっています。
<!--HTMLコード --> <a href="#" data-toggle="tooltip" title="いくつかのツールチップテキスト!">この上にマウスポインターを移動</a> <!-- プラグインによる一般的なマークアップ --> <div class="tooltip top" role="tooltip"> <div class="tooltip-arrow"></div> <div class="tooltip-inner"> いくつかのツールチップテキスト! </div> </div>
オプションは、データの属性やJavaScriptで渡すことができます。データ属性の場合は、data-animation=""
のように、data-
にオプション名を追加します。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
animation | boolean | true | ツールチップにCSSのフェード遷移を適用true :有効/false :無効 |
container | string | false | false | 特定の要素にツールチップを追加します。例:container: 'body' |
delay | number | object | 0 | ツールチップの表示および非表示を遅延させる(1000分の1秒単位) - triggerでmanualを指定した場合は適用されない。 数字が指定された場合、遅延はhide/showの両方に適用。 オブジェクト構造は次のとおり: delay: { show: 500, hide: 100 } |
html | boolean | false | ツールチップに表示されているHTMLを挿入します。falseの場合、jQueryのtext メソッドはDOMにコンテンツを挿入するために使用されます。XSS攻撃を心配するならtextを使用してください。true :有効/false :無効 |
placement | string | function | 'top' | ツールチップを配置する方法 - top | bottom | left | right | auto "auto"を指定した場合には、動的にツールチップの方向を変更します。配置が"auto left"なら、ツールチップは可能な限り左に表示され、それ以外の場合は右に表示されます。 |
selector | string | false | selectorを指定すると、ツールチップオブジェクトが指定されたターゲットに付与されます。 |
template 新設(3.2.0) |
string | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
ツールチップを作成する際にベースのHTMLに使用。 ツールチップの title が.tooltip-inner に注入。.tooltip-arrow は、ツールチップの矢印になる。一番外側を囲む要素が .tooltip クラスを持つ必要がある。 |
title | string | function | '' | title 属性が存在しない場合のデフォルトのタイトル。 |
trigger | string | 'hover focus' | ツールチップを起動する方法 - click | hover | focus | manual 複数の起動方法を指定するにはスペースで区切ってください。 |
viewport 新設(3.2.0) |
string | object | { selector: 'body', padding: 0 } | この要素の境界内でツールチップを保持。例:viewport: '#viewport' または{ selector: '#viewport', padding: 0 } |
ツールチップのハンドラーを要素の集合体に付けます。
要素のツールチップを表示します。
$('#element').tooltip('show')
要素のツールチップを非表示にします。
$('#element').tooltip('hide')
要素のツールチップを切り替えます。
$('#element').tooltip('toggle')
要素のツールチップを非表示にして破棄します。
$('#element').tooltip('destroy')
イベントタイプ | 説明 |
---|---|
show.bs.tooltip | このイベントは、show のインスタンスメソッドが呼び出されたときに直ちに起動。 |
shown.bs.tooltip | このイベントは、ツールチップが(CSS遷移の完了を待って)ユーザーに表示されたときに起動。 |
hide.bs.tooltip | このイベントは、hide のインスタンスメソッドが呼び出されたときに直ちに起動。 |
hidden.bs.tooltip | このイベントは、ツールチップが(CSS遷移の完了を待って)ユーザーに非表示になったときに起動。 |
使用例
$('#myTooltip').on('hidden.bs.tooltip', function () { // 何かをする... })
ポップオーバーを実行するためのプラグイン。
ココを押してください
HTML
<p data-toggle="popover" title="ポップオーバーのタイトル" data-content="ポップオーバーの説明。もう一度ボタンを押すと閉じます。">ココを押してください</p>
実行コード(<script src="js/bootstrap.min.js"></script>
より後に設置)
$("[data-toggle=popover]").popover()
HTMLコードの場合
<script>
$("[data-toggle=popover]").popover()
</script>
【設定】
a[data-toggle="popover"][title="ポップオーバーのタイトル"][data-content="ポップオーバーの説明"]
【注意】
tooltip.js
)を必要とする.btn-group
または.input-group
内の要素でポップオーバーを使用するときは、不必要な副作用(例えば:要素がより広がる/ポップオーバーの起動時に角丸がなくなる)を回避するため、オプションでcontainer: 'body'
を指定する必要があるdisplay: none;
を指定)でポップオーバーを表示しようとするのは不可disabled
または.disabled
の要素に追加するためには、<div>
タグの中に要素を置いて、その代わりにポップオーバーをその<div>
タグに適用させる※もう一度ボタンを押すと閉じます。
<!-- 左に出るポップオーバーの設定 --> <button type="button" class="btn" data-toggle="popover" data-placement="left" data-content="左に出るポップオーバー">ポップオーバー(左)</button> <!-- 上に出るポップオーバーの設定 --> <button type="button" class="btn" data-toggle="popover" data-placement="top" data-content="上に出るポップオーバー">ポップオーバー(上)</button> <!-- 下に出るポップオーバーの設定 --> <button type="button" class="btn" data-toggle="popover" data-placement="bottom" data-content="下に出るポップオーバー">ポップオーバー(下)</button> <!-- 右に出るポップオーバーの設定 --> <button type="button" class="btn" data-toggle="popover" data-placement="right" data-content="右に出るポップオーバー">ポップオーバー(右)</button>
<!-- 左に出るポップオーバーの設定 --> <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="left" data-content="左に出るポップオーバー">ポップオーバー(左)</button> <!-- 上に出るポップオーバーの設定 --> <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="top" data-content="上に出るポップオーバー">ポップオーバー(上)</button> <!-- 下に出るポップオーバーの設定 --> <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="bottom" data-content="下に出るポップオーバー">ポップオーバー(下)</button> <!-- 右に出るポップオーバーの設定 --> <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="right" data-content="右に出るポップオーバー">ポップオーバー(右)</button>
【設定】
data-toggle="popover"
と同じ要素にdata-placement="xxx"
(xxx
はleft
(左)、top
(上)、bottom
(下)、right
(右)の中から選択)を入れる【注意】
white-space: nowrap;
を入れる【Bootstrap2.xとの変更箇所】
data-container="body"
を追加JavaScriptでポップオーバーを有効にします:
$('#example').popover(options)
オプションは、データの属性やJavaScriptで渡すことができます。データ属性の場合は、data-animation=""
のように、data-
にオプション名を追加します。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
animation | boolean | true | ポップオーバーのCSSのフェード遷移を適用true :有効/false :無効 |
container | string | false | false | 特定の要素にポップオーバーを追加。例:container: 'body' このオプションはトリガー要素の近くにポップオーバーを配置することを可能にするという点で特に役に立つ-それはポップオーバーがウィンドウサイズ変更時にトリガー要素から離れてしまうのを防ぐ。 |
content | string | function | '' | data-content 属性が存在しない場合のデフォルトのコンテンツ。 |
delay | number | object | 0 | ポップオーバーの表示および非表示を遅延させる(1000分の1秒単位) - triggerでmanualを指定した場合は適用されない。 数字が指定された場合、遅延はhide/showの両方に適用。 オブジェクト構造は次のとおり: delay: { show: 500, hide: 100 } |
html | boolean | false | ポップオーバーに表示されているHTMLを挿入。falseの場合、jQueryのtext メソッドはDOMにコンテンツを挿入するために使用される。XSS攻撃を心配するならtextを使用すること。true :有効/false :無効 |
placement | string | function | 'right' | ポップオーバーを配置する方法 - top | bottom | left | right | auto "auto"を指定した場合には、動的にポップオーバーの方向を変更。配置が"auto left"なら、ポップオーバーは可能な限り左に表示され、それ以外の場合は右に表示。 |
selector | string | false | selectorを指定すると、ポップオーバーオブジェクトが指定されたターゲットに付与。実際にはポップオーバーを追加するように動的HTMLコンテンツを有効にするために使用。 |
template 新設(3.2.0) |
string | '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' |
ポップオーバーを作成する際にベースのHTMLに使用。 ポップオーバーの title が.popover-title に注入。ポップオーバーの content が.popover-content に注入。.arrow は、ポップオーバーの矢印になる。一番外側を囲む要素が .popover クラスを持つ必要がある。 |
title | string | function | '' | title 属性が存在しない場合のデフォルトのタイトル。 |
trigger | string | 'click' | ポップオーバーを起動する方法 - click | hover | focus | manual |
viewport 新設(3.2.0) |
string | object | { selector: 'body', padding: 0 } | この要素の境界内でツールチップを保持。例:viewport: '#viewport' または{ selector: '#viewport', padding: 0 } |
要素の集合体のためにポップオーバーを初期化します。
要素のポップオーバーを表示します。
$('#element').popover('show')
要素のポップオーバーを非表示にします。
$('#element').popover('hide')
要素のポップオーバーを切り替えます。
$('#element').popover('toggle')
要素のポップオーバーを非表示にして破棄します。
$('#element').popover('destroy')
イベントタイプ | 説明 |
---|---|
show.bs.popover | このイベントは、show のインスタンスメソッドが呼び出されたときに直ちに起動。 |
shown.bs.popover | このイベントは、ポップオーバーが(CSS遷移の完了を待って)ユーザーに表示されたときに起動。 |
hide.bs.popover | このイベントは、hide のインスタンスメソッドが呼び出されたときに直ちに起動。 |
hidden.bs.popover | このイベントは、ポップオーバーが(CSS遷移の完了を待って)ユーザーに非表示になったときに起動。 |
使用例
$('#myPopover').on('hidden.bs.popover', function () { // 何かをする... })
アラートメッセージを閉じるためのプラグイン。
●ボタン付き
次のように変更してもう一度試してください。
<div class="alert alert-info alert-dismissible"> <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">閉じる</span></button> <strong>注目!</strong> この警報はあなたの注意を必要とします。 </div> <!-- ボタン付き --> <div class="alert alert-danger alert-dismissible fade in" role="alert"> <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">閉じる</span></button> <h4>エラーが発生しました!</h4> <p>次のように変更してもう一度試してください。</p> <p> <button type="button" class="btn btn-danger">操作を実行</button> <button type="button" class="btn btn-default">キャンセル</button> </p> </div>
【設定】
.alert.alert-dismissible[role="alert"]
> [button.close[data-dismiss="alert"]
> [<span aria-hidden="true">×</span>
+ <span class="sr-only">閉じる</span>
(ユーザー補助用)] + (アラート文)].alert
に.fade.in
を追加【変更】
.alert-dismissable
⇒.alert-dismissible
(.alert-dismissable
でも使用可能)aria-hidden="true"
はbutton
内より独立したspan
に移動し、<span class="sr-only">閉じる</span>
を追加(従来のものでも使用可能)JavaScriptでアラートの消去を有効にします。
$(".alert").alert()
ただ自動的にアラートを閉じる機能を与えるために閉じるボタンにdata-dismiss="alert"
を追加します。
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">閉じる</span></button>
閉じる機能を持つすべてのアラートを囲みます。アラートを閉じるときにアニメーション化させるには、.fade
と.in
のクラスを指定してください。
アラートを閉じます。
$('.alert').alert('close')
イベントタイプ | 説明 |
---|---|
close.bs.alert | このイベントは、close のインスタンスメソッドが呼び出されたときに直ちに起動。 |
closed.bs.alert | このイベントは、アラートが(完全にCSS遷移の完了を待って)閉じられたときに起動。 |
使用例
$('#my-alert').on('closed.bs.alert', function () { // 何かをする... })
ボタンに様々な機能を追加するためのプラグイン。
ロード状態を表示するボタン
HTML
<button type="button" id="loading-example-btn" data-loading-text="ロード中..." class="btn btn-primary" autocomplete="off">ココを押す</button>
実行コード(<script src="js/bootstrap.min.js"></script>
より後に設置)
JSファイルの場合
$('#loading-example-btn').click(function () { var btn = $(this) btn.button('loading') setTimeout(function () { btn.button('reset') }, 3000) })
HTMLコードの場合
<script> $('#loading-example-btn').click(function () { var btn = $(this) btn.button('loading') setTimeout(function () { btn.button('reset') }, 3000) }) </script>
【設定】
.btn
にdata-loading-text="ロード中..."
を入れる【注意】
autocomplete="off"
を使用単独でON/OFFの切替をするボタン
<button type="button" data-toggle="button" class="btn btn-primary">ココを押す</button>
【設定】
.btn
にdata-toggle="button"
を入れるチェックボックスのようなボタングループ
<div class="btn-group" data-toggle="buttons-checkbox"> <button type="button" class="btn btn-primary active">オプション1(チェック済)</button> <button type="button" class="btn btn-primary">オプション2</button> <button type="button" class="btn btn-primary">オプション3</button> </div>
<div class="btn-group" data-toggle="buttons"> <label class="btn btn-primary active"> <input type="checkbox" checked> オプション1(チェック済) </label> <label class="btn btn-primary"> <input type="checkbox"> オプション2 </label> <label class="btn btn-primary"> <input type="checkbox"> オプション3 </label> </div>
【設定】
div.btn-group[data-toggle="buttons"]
> label.btn
> input[type="checkbox"]
label.active
> input[type="checkbox"][checked]
でチェック済み状態になる【Bootstrap2.xとの変更箇所】
data-toggle="buttons-checkbox"
⇒data-toggle="buttons"
button.btn
⇒label.btn
> input[type="checkbox"]
button.active
⇒label.active
> input[type="checkbox"][checked]
ラジオボタンのようなボタングループ
<div class="btn-group" data-toggle="buttons-radio"> <button type="button" class="btn btn-primary active">オプション1(選択済)</button> <button type="button" class="btn btn-primary">オプション2</button> <button type="button" class="btn btn-primary">オプション3</button> </div>
<div class="btn-group" data-toggle="buttons"> <label class="btn btn-primary active"> <input type="radio" checked> オプション1(選択済) </label> <label class="btn btn-primary"> <input type="radio"> オプション2 </label> <label class="btn btn-primary"> <input type="radio"> オプション3 </label> </div>
【設定】
div.btn-group[data-toggle="buttons"]
> label.btn
> input[type="radio"]
label.active
> input[type="radio"][checked]
で選択済み状態になる【Bootstrap2.xとの変更箇所】
data-toggle="buttons-radio"
⇒data-toggle="buttons"
button.btn
⇒label.btn
> input[type="radio"]
button.active
⇒label.active
> input[type="radio"][checked]
JavaScriptでボタンを有効にします。
$('.btn').button()
データ属性は、ボタンプラグインに必要です。様々なマークアップの種類については下記のコード例をチェックしてください。
ありません。
押すと切り替える状態にします。data-toggle
属性を使用して、ボタンの自動ON/OFF切替を有効にすることができます。
<button type="button" class="btn btn-primary" data-toggle="button">...</button>
ボタンのロード状態を設定します - ロードテキストにボタンとスワップテキストを無効にします。ロードするテキストは、データ属性data-loading-text
を使用したボタン要素で定義する必要があります。
<button id="loading-example-btn" type="button" class="btn btn-primary" data-loading-text="loading stuff...">...</button>
<script>
$('#loading-example-btn').click(function () {
var btn = $(this)
btn.button('loading')
$.ajax(...).always(function () {
btn.button('reset')
});
});
</script>
ボタンの状態をリセットします - 元のテキストに戻ります。
リセットするボタンの状態 - 任意のデータに定義されたテキストに変わります。
<button type="button" class="btn btn-primary" data-complete-text="finished!" >...</button>
<script>
$('.btn').button('complete')
</script>
アコーディオンのように折り畳めるアイテムを実装できるプラグイン。
デザインがナビゲーション風からパネル風に変更(3RC2)
<div class="accordion" id="accordion"> <div class="accordion-group"> <div class="accordion-heading"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> アイテム1 </a> </div> <div id="collapseOne" class="accordion-body collapse in"> <div class="accordion-inner"> アイテム1のコンテンツ </div> </div> </div> <div class="accordion-group"> <div class="accordion-heading"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> アイテム2 </a> </div> <div id="collapseTwo" class="accordion-body collapse"> <div class="accordion-inner"> アイテム2のコンテンツ </div> </div> </div> ... </div>
<div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> アイテム1 </a> </h4> </div> <div id="collapseOne" class="panel-collapse collapse in"> <div class="panel-body"> アイテム1のコンテンツ </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> アイテム2 </a> </h4> </div> <div id="collapseTwo" class="panel-collapse collapse"> <div class="panel-body"> アイテム2のコンテンツ </div> </div> </div> ... </div>
【設定】
div.panel-group[id="accordion"]
> [div.panel.panel-default
> [div.panel-heading
> .panel-title
> a.accordion-toggle[data-toggle="collapse"][data-parent="#accordion"][href="#ID名"]
](パネルヘッダ) + [div.panel-collapse.collapse[id="ID名"]
> div.panel-body
](パネルコンテンツ)]・・・.panel-collapse.collapse.in
で最初からパネルが開いた状態になる【Bootstrap2.xとの変更箇所】
.accordion
⇒.panel-group
.accordion-group
⇒.panel.panel-default
.accordion-heading
⇒panel-heading
.accordion-body
⇒.panel-collapse
.accordion-inner
⇒.panel-body
.panel-group > .panel > .panel-heading { padding: 0; } .panel-group > .panel > .panel-heading a:active, .panel-group > .panel > .panel-heading a:hover, .panel-group > .panel > .panel-heading a:focus { text-decoration: none; } a.accordion-toggle { display: block; padding: 8px 15px; }
.table
に.table-bordered
を設定した時に線が二重になるのを解消する方法は未解決).panel-collapse > .table { margin-bottom: 0; } .panel-collapse > .table > thead { border-top: 1px solid #dddddd; }
.panel-collapse > .list-group { margin-bottom: 0; } .panel-collapse > .list-group > .list-group-item { border-left: 0; border-right: 0; } .panel-collapse > .list-group > .list-group-item:first-child { border-top-left-radius: 0; border-top-right-radius: 0; } .panel-collapse > .list-group > .list-group-item:last-child { border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom: 0; }
<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#btn-demo"> ココを押すと開閉します </button> <div id="btn-demo" class="collapse in" style="margin-top:10px">コンテンツが表示されます。</div>
【設定】
button[data-toggle="collapse"][data-target="#ID名"]
(ボタン) + div.collapse[id="ID名"]
(コンテンツ)【注意】
button
にmargin-bottom
のスタイルか.collapse
にmargin-top
のスタイルを指定折り畳みプラグインは、上げ下げによる開閉を取り扱うために、いくつかのクラスを利用します:
.collapse
:コンテンツを非表示にします。.collapse.in
:コンテンツを表示します。.collapsing
:遷移の開始時に開き、終了すると閉じます。これらのクラスは、component-animations.less
に記載されています。
自動的に折りたためる要素の制御を割り当てるために、data-toggle="collapse"
とdata-target
を要素に追加してください。とdata-target
属性がに折り畳みを適用するCSSセレクタを受け入れます。折り畳み可能な要素にcollapse
クラスを追加してください。あなたはそれが開いてデフォルトにしたい場合は、追加のin
クラスを追加します。
折りたたみ可能なコントロールにアコーディオン状のグループ管理を追加するには、データ属性data-parent="#selector"
を追加します。この動作を確認するためにデモを参照してください。
手動で有効にしてください。
$('.collapse').collapse()
オプションは、データの属性やJavaScriptで渡すことができます。データ属性の場合は、data-parent=""
のように、data-
にオプション名を追加します。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
parent | selector | false | selectorは、この折り畳み式のアイテムが表示されているときに、指定された親の下にあるすべての折りたたみ可能な要素が閉じられる。 (従来のアコーディオンの動作に類似 - これはpanel クラスに依存) |
toggle | boolean | true | 呼び出しで折り畳み可能な要素を切り替えるtrue :有効/false :無効 |
折り畳み可能な要素としてコンテンツをアクティブにする。オプションのオプションがobject
を受け付ける。
$('#myCollapsible').collapse({ toggle: false })
表示または非表示に折り畳み可能な要素を切り替えます。
折り畳み可能な要素を表示します。
折り畳み可能な要素を非表示にします。
Bootstrapのcollapseクラスは折り畳みの機能に接続するためにいくつかのイベントを公開します。
イベントタイプ | 説明 |
---|---|
show.bs.collapse | このイベントは、show のインスタンスメソッドが呼び出されたときに直ちに起動。 |
shown.bs.collapse | このイベントは、折り畳みの要素が(CSS遷移の完了を待って)ユーザーに非表示になったときに起動。 |
hide.bs.collapse | このイベントは、hide のインスタンスメソッドが呼び出されたときに直ちに起動。 |
hidden.bs.collapse | このイベントは、折り畳みの要素が(CSS遷移の完了を待って)ユーザーに非表示になったときに起動。 |
使用例
$('#myCollapsible').on('hidden.bs.collapse', function () { // 何かをする... })
スライドショーを実装できるプラグイン。
<div id="carousel-examples" class="carousel slide" data-ride="carousel"> <!-- 標識の設定 --> <ol class="carousel-indicators"> <li data-target="#carousel-examples" data-slide-to="0" class="active"></li> <li data-target="#carousel-examples" data-slide-to="1"></li> <li data-target="#carousel-examples" data-slide-to="2"></li> </ol> <!-- スライドさせる画像の設定 --> <div class="carousel-inner"> <div class="item active"> <img src="image/1st.jpg" alt="第1スライドイメージ"> </div> <div class="item"> <img src="image/2nd.jpg" alt="第2スライドイメージ"> </div> ... </div> <!-- スライドコントロールの設定 --> <a class="left carousel-control" href="#carousel-examples" data-slide="prev">‹</a> <a class="right carousel-control" href="#carousel-examples" data-slide="next">›</a> </div>
<div id="carousel-examples" class="carousel slide" data-ride="carousel"> <!-- 標識の設定 --> <ol class="carousel-indicators"> <li data-target="#carousel-examples" data-slide-to="0" class="active"></li> <li data-target="#carousel-examples" data-slide-to="1"></li> <li data-target="#carousel-examples" data-slide-to="2"></li> </ol> <!-- スライドさせる画像の設定 --> <div class="carousel-inner"> <div class="item active"> <img src="image/1st.jpg" alt="第1スライドイメージ"> </div> <div class="item"> <img src="image/2nd.jpg" alt="第2スライドイメージ"> </div> ... </div> <!-- スライドコントロールの設定 --> <a class="left carousel-control" href="#carousel-examples" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left"></span> </a> <a class="right carousel-control" href="#carousel-examples" data-slide="next"> <span class="glyphicon glyphicon-chevron-right"></span> </a> </div>
【設定】
div.carousel.slide[id="ID名"]
> [ol.carousel-indicators"
> [li.active[data-target="#ID名"][data-slide-to="0"]
+ li[data-target="#ID名"][data-slide-to="1"]
・・・]](標識) + [div.carousel-inner
> [div.item.active
> img
] + [div.item
> img
]・・・](画像) + [[a.left.carousel-control[href="#ID名"][data-slide="prev"]
> span.glyphicon.glyphicon-chevron-left
](前へ) + [a.right.carousel-control[href="#ID名"][data-slide="next"]
> span.glyphicon.glyphicon-chevron-right
](次へ)](スライドコントロール)li
とdiv.item
に.active
を入れるとその部分が最初に表示されるdata-slide-to="*"
は0
から順につける.carousel
にdata-ride="carousel"
を入れると読み込み時から循環が開始【Bootstrap2.xとの変更箇所】
‹
(‹)⇒span.glyphicon.glyphicon-chevron-left
()›
(›)⇒span.glyphicon.glyphicon-chevron-right
()Bootstrapは、もっぱらそのアニメーションにCSS3を使用しますが、Internet Explorerの8&9は必要なCSSプロパティをサポートしていません。したがって、これらのブラウザを使用するときはスライドの遷移アニメーションはありません。遷移するためのjQueryベースのフォールバックは意図的に含まれていません。
<div id="carousel-examples" class="carousel slide"> ... <!-- スライドさせる画像の設定 --> <div class="carousel-inner"> <div class="item active"> <img src="image/1st.jpg" alt="第1スライドイメージ"> <div class="carousel-caption"> <h3>第1スライド見出し</h3> <p>スライドイメージの紹介</p> </div> </div> <div class="item"> <img src="image/2nd.jpg" alt="第2スライドイメージ"> <div class="carousel-caption"> <h3>第2スライド見出し</h3> <p>スライドイメージの紹介</p> </div> </div> ... </div>
【設定】
div.item
> [img
+ [.carousel-caption
> [h3
(キャプションのタイトル) + p
(キャプションのコンテンツ)]]]カルーセルは、カルーセルのコントロールが適切に機能するよう最も外側の.carousel
上のid
の使用を要求します。複数のカルーセルを追加する場合あるいはカルーセルのid
を変更する場合、関連するコントロールを更新してください。
簡単にカルーセルの位置をコントロールするためにはデータ属性を使用してください。data-slide
はキーワードprev
かnext
を受け入れて、その現在の位置と比較してスライド位置を変更します。
あるいはdata-slide-to="2"
のように0
から始まる特定のインデックスにスライド位置をシフトしてカルーセルに純粋なスライドのインデックスを渡すためにdata-slide-to
を使用します。
data-ride="carousel"
属性はページの読み込み時から遷移アニメーションが始まるカルーセルを指定するために使用します。同じカルーセルの(不要で不必要な)明示的なJavaScriptの初期化と組み合わせて使用することはできません。
手動でカルーセルを呼び出します。
$('.carousel').carousel()
オプションは、データの属性やJavaScriptで渡すことができます。データ属性の場合は、data-interval=""
のように、data-
にオプション名を追加します。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
interval | number | 5000 | アイテムを自動的に循環させる時間の間隔(1000分の1秒単位)。falseの場合カルーセルは自動的に循環しない。 |
pause | string | "hover" | マウスカーソルが乗ったらカルーセルの循環を一時停止し、マウスカーソルが外れたらカルーセルの循環を再開。 |
wrap 新設 |
boolean | true | カルーセルは、連続的に循環すべきか停止すべきか指定true :有効/false :無効 |
オプションのオプションobject
がカルーセルを初期化し、アイテムの循環を開始します。
$('.carousel').carousel({ interval: 2000 })
左から右にカルーセルのアイテムが循環します。
カルーセルがアイテムによって循環するのを停止します。
特定のフレーム(配列と同様に0から数える)でカルーセルを循環させます。
前のアイテムに循環します。
次のアイテムに循環します。
Bootstrapのカルーセルクラスは、カルーセルの機能に接続するために2つのイベントを公開します。
両方のイベントには、次の追加プロパティがあります 新設(3.2.0):
direction
: カルーセルのスライドされる方向("left"
または"right"
のいずれか)relatedTarget
: アクティブなアイテムとして、所定の位置にスライドされているDOM要素イベントタイプ | 説明 |
---|---|
slide.bs.carousel | このイベントは、slide のインスタンスメソッドが呼び出されたときに直ちに起動。 |
slid.bs.carousel | このイベントは、カルーセルがスライドの移行を完了したときに起動。 |
使用例
$('#myCarousel').on('slide.bs.carousel', function () { // 何かをする... })
スクロールに追従するメニューや要素を実装できるプラグイン。
このサイトのサイドバーを参照してください。
HTML
<body data-spy="scroll" data-target="#sidebar"> ... <div id="sidebar" data-spy="affix" data-offset-top="200"> <ul class="nav"> <li><a href="#overview">概要</a></li> <li><a href="#transitions">遷移効果</a></li> <li><a href="#modals">モーダル</a> <ul class="nav"> <li><a href="#modal-default">モーダルの設定</a></li> <li><a href="#modal-size">モーダルの大きさ</a></li> <li><a href="#modal-usage">使用方法</a></li> </ul> </li> ... </ul> </div> ... </body>
css
/* サイドバー */ #sidebar.affix { position: static; } @media screen and (min-width: 992px) { #sidebar.affix, #sidebar.affix-bottom { width: 213px; } #sidebar.affix { position: fixed; top: 60px; } #sidebar.affix-bottom { position: absolute; } } @media screen and (min-width: 1200px) { #sidebar.affix-bottom, #sidebar.affix { width: 263px; } }
【設定】
div[data-spy="affix"][data-offset-top="***"][data-offset-bottom="***"]
data-offset-top="***"
には追従を開始する最上部からのスクロール位置(px)を入れるdata-offset-bottom="***"
には追従を終了する最下部からのスクロール位置(px)を入れる.affix
と.affix-bottom
の位置を決めるために別途CSSを指定する必要がある独自のJavaScriptとデータ属性を通じて、または手動でアフィックスプラグインを使用してください。両方の状況ともコンテンツの位置決めのためにCSSを提供する必要があります。
アフィックスプラグインは特定の状態を表す3つのクラスの切り替えがあります:.affix
, .affix-top
,.affix-bottom
実際の位置を処理するために自分で(このプラグインに依存せずに)これらのクラスのスタイルを提供する必要があります。
アフィックスプラグインが機能する方法:
.affix-top
を加えます。この時点ではCSS位置決めは必要とされません。.affix
が.affix-top
に代わってposition: fixed;
(BootstrapのコードCSSによって提供される)を決めるところです。.affix
を.affix-bottom
と入れ替えなければなりません。オフセットがオプションであるので、1つをセットすることは適切なCSSをセットすることを要求します。この場合では、必要に応じてposition: absolute;
を加えてください。プラグインはどこにそこから要素を置くべきかについて決定するためにデータ属性またはJavaScriptオプションを使用します。下記の使用オプションのいずれかについてCSSを指定するには上記の手順に従ってください。
アフィックスプラグインを簡単に任意の要素に追加するためにはdata-spy="affix"
を追従したい要素に追加してください。
要素の追従を切り替える位置を定義するためにoffsetを使用しています。
<div data-spy="affix" data-offset-top="60" data-offset-bottom="200"> ... </div>
JavaScriptでアフィックスプラグインを呼び出します。
$('#my-affix').affix({ offset: { top: 100 , bottom: function () { return (this.bottom = $('.footer').outerHeight(true)) } } })
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
offset | number | function | object | 10 | 追従を開始するスクロール位置(ピクセル単位)。単独の数字を指定した場合はtop/bottomの両方で適用。一意的にbottomとtopのオフセットがちょうど相殺されるオブジェクトを提供:offset: { top: 10 } またはoffset: { top: 10, bottom: 5 } スクロール位置をダイナミックに計算する必要があるときには関数を使用。 |
target 新設(3.2.0) |
selector | node | jQuery element | the window object |
追従のターゲット要素を指定。 |
Bootstrapのアフィックスクラスは、アフィックスの機能に接続するためにいくつかのイベントを公開します。
イベントタイプ | 説明 |
---|---|
affix.bs.affix | このイベントは、要素が追従される直前に起動。 |
affixed.bs.affix | このイベントは、要素が追従された後に起動。 |
affix-top.bs.affix | このイベントは、要素が追従された最上部の直前に起動。 |
affixed-top.bs.affix | このイベントは、要素が追従された最上部の後に起動。 |
affix-bottom.bs.affix | このイベントは、要素が追従された最下部の直前に起動。 |
affixed-bottom.bs.affix | このイベントは、要素が追従された最下部の後に起動。 |
【Bootstrap2.xとの変更箇所】
bootstrap-typeahead.js
は廃止、別途typeahead.jsを導入すること