インジケータコンポーネント( ナビゲーション または リストグループ )のアクティブアイテム表示と縦スクロールするコンテンツのスクロールを同期させる機能。
スクロールスパイはJavaScriptを用いてスクロールするコンテンツの現在位置を監視し、インジケータ(ナビゲーションまたはリストグループ)のアクティブ表示を更新する。機能上の必要条件は次の通り。
position: relative;
overflow-y: scroll;
height
が何らかの形で設定されていることbody
を用いる場合は上記条件は自動的に満たしている(設定不要)body
を用いるか、または上記必要条件の属性を設定するdata-spy="scroll"
data-target="#{indicator-id}"
data-offset="{pixels}"
(スクロール位置計算オフセット、デフォルトは "10"
)id
を設定するid="{indicator-id}"
を設定するa
と属性 href="#{target-id}"
を設定する⇒ デモページ
⇒ デモページ
⇒ デモページ
スピナーは主に「ロード中」状態を表示するのに用いられる。
div.spinner-border
属性
role="status"
span.sr-only
Loading...
.text-(primary|secondary|success|danger|warning|info|light|dark)
を追加する。
.text-primary
.text-secondary
.text-success
.text-danger
.text-warning
.text-info
.text-light
.text-dark
div.spinner-grow
属性
role="status"
span.sr-only
Loading...
.text-primary
.text-secondary
.text-success
.text-danger
.text-warning
.text-info
.text-light
.text-dark
空白ユーティリティ を用いる。
.m-0
.m-1
.m-2
.m-3
.m-4
.m-5
各種ユーティリティを利用できる。
div.d-flex.align-items-center
strong
Loading...
div.spinner-border
属性
role="status"
aria-hidden="true"
.float-left
.float-right
div.clearfix
div.spinner-border
属性
.float-(left|right)
role="status"
span.sr-only
テキストユーティリティ を用いた例。
.text-left
.text-center
.text-right
div.text-(left|center|right)
div.spinner-border
属性
role="status"
span.sr-only
小型のスピナーは.spinner-(border|grow)-sm
を追加する。
div.spinner-border.spinner-border-sm
div.spinner-grow.spinner-grow-sm
カスタムCSSまたはインラインスタイルを用いて任意の大きさに設定できる。
style="width: 1rem; height: 1rem;"
style="width: 2rem; height: 2rem;"
style="width: 3rem; height: 3rem;"
style="width: 4rem; height: 4rem;"
style="width: 5rem; height: 5rem;"
style="width: 6rem; height: 6rem;"
ボタン内部にスピナーを用いて現在実行中のアクションを表現できる。
button.btn.btn-primary
属性
type="button"
disabled
div.spinner-(border|grow).spinner-(border|grow)-sm
属性
role="status"
aria-hidden="true"
span.sr-only
Loading...
Loading...
トーストは主に短時間だけ表示する通知メッセージ用に用いられる。トーストはデフォルト状態は非表示であり、表示するには次のようなJavaScriptコードを用いる。
$('.toast').toast('show');
デフォルト設定では表示後500ms後に自動的に画面から消去されるが、下記のdata属性オプションを用いて消去までの時間を設定したり、消去せずそのまま画面上に残すこともできる。
div.toast
属性
role="alert"
aria-live="assertive"
aria-atomic="true"
data-autohide="false"
div.toast-header
img.rounded.mr-2
属性
src="../img/20x20-blue.svg"
alt="Logo placeholder"
strong.mr-auto
Bootstrap
small.muted
11 mins ago
button.ml-2.mb-1.close
属性
type="button"
data-dismiss="toast"
aria-label="Close"
span
属性
aria-hidden="true"
×
div.toast-body
Hello, world! This is a toast message.
トースト外枠 div.toast
に次の属性を用いて動作を設定できる。
data-delay="{時間[msec]}"
消去までの時間を設定(デフォルト値は"500"
[msec])data-animation="(true|false)"
CSSアニメーションの設定(デフォルト値は "true"
)data-autohide="(true|false)"
自動消去の設定(デフォルト値は "true"
)次のデモを使って上記data属性オプションを実際に確認できる。
トーストは半透明で(背景が透けて見える)、さらにブラウザが backdrop-filter
CSSプロパティをサポートしている場合は背景のぼかし効果も加える。
トーストは複数個を同時表示可能で、上下に積み重なった状態で表示する。
CSSのインラインスタイルを用いて、トーストを任意の場所に配置できる。次は(もっとも典型的な)左上への配置例(設定方法は下記 をクリックして表示)。
div.bg-secondary
属性
複数積み重ね表示と組み合わせる場合はラッパ要素を用いてグループ化すればよい。
div.bg-secondary
属性
aria-live="(assertive|polite|...)"
を設定)
aria-atomic="true"
を設定するrole="(alert|status|...)"
を設定するHTML要素の title
属性を用いたツールチップ(ポップアップ)表示機能をカスタマイズしたもの。実装に Popper.js を利用している。
a
や button
などタブストップを受ける要素は Tab キーでフォーカスした場合もポップアップ表示する。Bootstrapのツールチップは初期状態では無効になっており、有効にするためにはJavaScriptコードが必要。最も簡単な方法を次に示す。
$('[data-toggle="tooltip"]').tooltip();
script
を使っても動作しない。jquery, popper.js, bootstrap.jsが事前に必要で、これら3つの後に設定(実行)すること。data-toggle="tooltip"
title="{表示テキスト}"
設定例 ⇒ この部分 に設定(ホバーすると表示)
"top"
)
data-placement=("top"|"right"|"bottom"|"left")
設定例
data-html="true"
title="TNT(C<sub>6</sub>H<sub>2</sub>(NO<sub>2</sub>)<sub>3</sub>CH<sub>3</sub>)"
設定例 ⇒ この部分 をホバーすると表示
要素に属性 disabled
を設定した場合ツールチップは表示されなくなる。次の例は button
に下記の通り設定しているが、ツールチップはポップアップしない。
button.btn.btn-primary
属性
type="button"
data-toggle="tooltip"
(設定している)title="Disabled tooltip"
(これも設定、しかし...)disabled
(これを設定するとツールチップも無効化される)Disabled button
設定例(ツールチップは表示されない)
しかし disabled
は設定するがツールチップは表示したケースもある。その場合は親要素を作ってそこにツールチップを設定し、その中に disabled
を設定した要素を入れればよい。対応例は次の通り。
span
属性
.d-inline-block
( button
と同じ display
にする)tabindex="0"
( Tab キーはここで受ける)data-toggle="tooltip"
title="Disabled tooltip"
button.btn.btn-primary
属性
type="button"
style="pointer-events: none;"
(イベントターゲットから完全に外す)disabled
Disabled button
設定例: button
は disabled
だがツールチップは動作する(実際は親要素が処理している)