Tooltips
Tooltips(ツールチップ)を追加するためのドキュメントと例です。ツールチップの使い方の例を示します。
Overview
ツールチップを使用するときに知っておくべきことは下記です。:
- ツールチップの位置は Popper.js に依存します。 popper.min.js を bootstrap.jsの前におくか, Popper.jsを含む
bootstrap.bundle.min.js
/bootstrap.bundle.js
を使用する必要があります。 - JavaScriptをソースから構築するには requires
util.js
を使用します。 - ツールチップはパフォーマンスの理由でオプトイン(任意)で取得されるため, 初期化する必要があります。
- 長さが0のタイトルのツールチップは表示されません。
container: 'body'
を指定すると, 複雑なコンポーネント(インプットグループやボタングループなど)のレンダリングの問題が回避可能です。- 隠された要素のツールチップをトリガーすることはできません。
.disabled
またはdisabled
要素のツールチップはそれを囲む要素で起動する必要があります。- 複数の行にまたがるハイパーリンクからトリガされると, ツールチップが中央に配置されます。この動作を避けるために
<a>
にwhite-space: nowrap;
をラップしてください。 - ツールチップは, 対応する要素がDOMから削除される前に非表示にする必要があります。
下記の例をみてください。
Example: Enable tooltips everywhere
ツールチップを初期化する方法の1つは data-toggle
属性で選択することです。
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
Examples
ツールチップを表示するには, 以下のリンクをホバーしてください。
Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.
下記のボタンをホバーすると上, 右, 下, 左の4つの例がみれます。
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left">
Tooltip on left
</button>
And with custom HTML added:
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
Usage
ツールチップは, コンテンツとマークアップを生成します。デフォルトでは, ツールチップはトリガー要素の後に配置されます。
JavaScript経由でツールチップをトリガします。
$('#example').tooltip(options)
Overflow auto
and scroll
ツールチップの位置は .table-responsive
のように, 親のコンテナが overflow: auto
か overflow: scroll
を持っているときに自動で変わろうとしますが, 置かれる方向については変化しません。
これを解決するには, boundary
オプションをデフォルトでない scrollParent
, 例えば window
にします。
$('#example').tooltip({ boundary: 'window' })
Markup
ツールチップに必要なマークアップは data
属性と HTML要素の title
だけです。
生成されたツールチップのマークアップは位置が必要です(デフォルトでは, プラグインによって top
に設定されています)。
Making tooltips work for keyboard and assistive technology users
伝統的にキーボードでフォーカスしたり操作できる HTML 要素(リンクやフォームなど)以外に tooltip を追加することは推奨されません。
どの HTML 要素であっても(<span>
など), tabindex="0"
属性を追加することでフォーカスできるようになりますが, キーボードを使うユーザがタブキーで操作する際に, 操作できない要素にフォーカスされることでユーザを混乱させる恐れがあります。
加えてこの状況の場合, ほとんどのスクリーンリーダなどの補助機能は tooltip の内容を読み上げてはくれません。
さらに, tooltip のトリガを hover
にだけ頼らないようにします。
キーボードユーザがツールチップを出現できなくなるためです。
<!-- HTML to write -->
<a href="#" data-toggle="tooltip" title="Some tooltip text!">Hover over me</a>
<!-- Generated markup by the plugin -->
<div class="tooltip bs-tooltip-top" role="tooltip">
<div class="arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
</div>
Disabled elements
disabled
属性をもつ要素はインタラクティブではないので ユーザーがフォーカス , ホバー, クリックしてツールチップ(またはポップオーバー)を起動することはできません。
As a workaround, you’ll want to trigger the tooltip from a wrapper <div>
or <span>
, ideally made keyboard-focusable using tabindex="0"
, and override the pointer-events
on the disabled element.
回避策として tabindex="0"
を適用して <div>
または <span>
をラッパーしてツールチップを起動し, 無効化された要素の pointer-events
を上書きする必要があります。
<span class="d-inline-block" tabindex="0" data-toggle="tooltip" title="Disabled tooltip">
<button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>
Options
オプションは, データ属性またはJavaScriptを使用して渡すことができます。 データ属性の場合 data-
にオプション名を適用します( data-animation =" "
のように)
Name | Type | Default | Description |
---|---|---|---|
animation | boolean | true | ツールチップにCSSによるフェード遷移を追加します。 |
container | string | element | false | false |
特定の要素に tooltip を追加します(例: |
delay | number | object | 0 |
tooltip の表示・非表示を遅らせます(ms)。 number が与えられた場合, 表示・非表示の両方に有効になります。 オブジェクトを渡す場合は, 次のフォーマットにします: |
html | boolean | false |
tooltip 内に HTML を許可します。 true の場合, tooltip の XSS 攻撃を考慮する場合, テキストを使います。 |
placement | string | function | 'top' |
tooltip の置く場所を指定します: auto | top | bottom | left | right。 場所を決めるために関数を使用する場合は, tooltip DOM ノードを第一引数に, トリガとなる DOM 要素を第二引数として関数が呼ばれます。このときの |
selector | string | false | false | selector が与えられた場合, tooltip オブジェクトは指定されたターゲットに移譲されます。実用上は, これは動的に Popover を持つ HTML コンテンツを追加するために使われます。こちら や an informative example も参考にしてください。 |
template | string | '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' |
tooltip を作る際に用いるベースとなる HTML です。 tooltip の
最も外側の要素は |
title | string | element | function | '' |
関数が渡された場合, tooltip が添付されている要素を |
trigger | string | 'hover focus' |
tooltip がどのようにトリガされるかを指定します: click | hover | focus | manual
|
offset | number | string | 0 | tooltip とターゲットとの間のオフセットです。詳しくは Popper.js の offset docs を参考にしてください。 |
fallbackPlacement | string | array | 'flip' | Popper がフォールバック時にどの位置を使用するかを設定します。詳しくは Popper.js の behavior docs を参考にしてください。 |
boundary | string | element | 'scrollParent' | Overflow 時の tooltip の位置を定める境界を指定します。'viewport' , 'window' , 'scrollParent' , または HTML 要素のリファレンスを指定することができます。詳しくは Popper.js のpreventOverflow docs を参考にしてください。 |
Data attributes for individual tooltips
個々のツールチップのオプションはデータ属性を使用して指定するできます。
方法(Methods)
Asynchronous methods and transitions
すべての API メソッドは非同期であり, 遷移を開始します。 これらは遷移が始まってすぐ, それが終わる前に return されます。 加えて, 遷移中のコンポーネントから呼ばれたメソッドは無視されます。
$().tooltip(options)
要素にツールチップハンドラーをつけます。
.tooltip('show')
ツールチップを表示します。ツールチップが表示される前( shown.bs.tooltip
の発動前)に呼び出し元に戻ります。
これは, ツールチップの “manual” トリガーとみなされる。タイトルの長さが0のツールチップは表示されません。
$('#element').tooltip('show')
.tooltip('hide')
ツールチップを非表示にする。ツールチップが非表示になる前( hidden.bs.tooltip
の前)に呼び出し元に戻ります。
ツールチップの “manual” トリガーとみなされます。
$('#element').tooltip('hide')
.tooltip('toggle')
ツールチップを切り替えます。ツールチップが表示/非表示になる前( shown.bs.tooltip
, hidden.bs.tooltip
の発動前)に呼び出し元に戻ります。
ツールチップの “manual” トリガーとみなされる。
$('#element').tooltip('toggle')
.tooltip('dispose')
ツールチップを非表示にしたり破棄したりします。
the selector
option を使用して作成されます。
デリゲートを使用するツールチップは, 子孫トリガー要素で個別に破棄できません。
$('#element').tooltip('dispose')
.tooltip('enable')
ツールチップに表示する機能を与えます。デフォルトは有効です。
$('#element').tooltip('enable')
.tooltip('disable')
ツールチップを表示する機能を削除します。ヒントが再度有効になっている場合にのみ, ツールチップを表示することができます。
$('#element').tooltip('disable')
.tooltip('toggleEnabled')
ツールチップの表示/非表示にするかを切り替えます。
$('#element').tooltip('toggleEnabled')
.tooltip('update')
ツールチップの位置を更新します。
$('#element').tooltip('update')
Events
Event Type | Description |
---|---|
show.bs.tooltip | このイベントは, show インスタンスメソッドが呼ばれてすぐに発生します。 |
shown.bs.tooltip | このイベントは, tooltip がユーザに見えるようになったときに発生します(CSS による遷移を待機します)。 |
hide.bs.tooltip | このイベントは, hide インスタンスメソッドが呼ばれてすぐには発生します。 |
hidden.bs.tooltip | このイベントは, tooltip がユーザから不可視になった直後に発生します(CSSによる遷移を待機します)。 |
inserted.bs.tooltip | このイベントは tooltip テンプレートが DOM に追加されたときのshow.bs.tooltip イベントの後に発生します。 |
$('#myTooltip').on('hidden.bs.tooltip', function () {
// do something…
})
v4.4