Bootstrap ツールチップ

Bootstrap のツールチップ

Bootstrap のツールチップ

この記事では、Bootstrap フレームワークのツールチップコンポーネントについて説明します。使用方法、カスタマイズオプション、JavaScript の動作、アクセシビリティに関する注意事項など、詳細を解説します。

---

一、クイックスタート

Bootstrap のツールチップは、HTML の data 属性または JavaScript を使用して簡単に実装できます。

1. data 属性を使用した初期化

要素に data-bs-toggle="tooltip" 属性を追加し、title 属性にツールチップのテキストを設定します。


<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
  Tooltip on top
</button>

2. JavaScript を使用した初期化

JavaScript を使用してツールチップを初期化するには、要素を選択し、tooltip() メソッドを呼び出します。


<button type="button" class="btn btn-secondary" id="myTooltip">
  Tooltip on top
</button>

<script>
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
  return new bootstrap.Tooltip(tooltipTriggerEl)
})
</script>

二、HTML 構造

ツールチップの基本的な HTML 構造は次のとおりです。


<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
  Tooltip on top
</button>
  • button 要素は、ツールチップを表示するトリガー要素です。
  • data-bs-toggle="tooltip" 属性は、Bootstrap に対してツールチップを初期化するように指示します。
  • data-bs-placement="top" 属性は、ツールチップの位置を上に設定します。
  • title 属性は、ツールチップのテキストコンテンツを指定します。

アクセシビリティ

ツールチップのアクセシビリティを向上させるために、aria 属性を使用することが重要です。 aria-label 属性または aria-describedby 属性を使用して、ツールチップの目的を支援技術に伝えます。

三、無効化された要素のツールチップ

無効化された要素にツールチップを表示するには、トリガー要素をラップする要素にツールチップをアタッチし、pointer-events: none; スタイルをトリガー要素に適用します。


<span class="d-inline-block" data-bs-toggle="tooltip" title="Disabled tooltip">
  <button class="btn btn-secondary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>

四、オプション

ツールチップは、data 属性または JavaScript のオプションを使用してカスタマイズできます。以下は、使用可能なオプションの表です。

オプション 説明 デフォルト値
animation CSS のフェードイン/フェードアウトアニメーションを使用するかどうか。 true
container ツールチップの親要素を指定します。位置決めするために使用されます。 body
delay ツールチップの表示と非表示の遅延時間をミリ秒単位で設定します。 0
html ツールチップのコンテンツに HTML を使用できるかどうか。 false
placement トリガー要素に対するツールチップの位置を指定します。 top
selector 子要素にツールチップのトリガーイベントを委任します。 null
template ツールチップの HTML 構造をカスタマイズします。 '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
title ツールチップのコンテンツテキストを設定します。 ''
trigger ツールチップの表示をトリガーするイベントタイプを指定します。 'hover focus'
offset トリガー要素に対するツールチップのオフセットを指定します。 [0, 0]
fallbackPlacements デフォルトの位置にツールチップを表示できない場合の代替位置を指定します。 ['top', 'right', 'bottom', 'left']
boundary ツールチップの境界要素を設定します。境界要素を超えないようにします。 'clippingParents'
customClass ツールチップにカスタム CSS クラスを追加します。 ''
sanitize ツールチップのコンテンツをサニタイズして XSS 攻撃を防ぐかどうか。 true
sanitizeFn カスタムのサニタイズ関数を設定します。 null
allowList ツールチップのコンテンツで許可される HTML タグと属性のホワイトリストを設定します。 null

五、メソッド

ツールチップを制御するために使用できる JavaScript メソッドを以下に示します。

メソッド 説明
.tooltip(options) ツールチップインスタンスを初期化します。
.show() ツールチップを表示します。
.hide() ツールチップを非表示にします。
.toggle() ツールチップの表示状態を切り替えます。
.update() ツールチップの位置とコンテンツを更新します。
.dispose() ツールチップインスタンスを破棄します。
.enable() ツールチップを有効にします。
.disable() ツールチップを無効にします。
.toggleEnabled() ツールチップの有効/無効状態を切り替えます。

六、イベント

ツールチップに関連するイベントを以下に示します。

イベント 説明
show.bs.tooltip ツールチップが表示される前にトリガーされます。
shown.bs.tooltip ツールチップが表示された後にトリガーされます。
hide.bs.tooltip ツールチップが非表示になる前にトリガーされます。
hidden.bs.tooltip ツールチップが非表示になった後にトリガーされます。
inserted.bs.tooltip ツールチップの HTML 構造が DOM ツリーに挿入された後にトリガーされます。

七、アクセシビリティ

ツールチップのアクセシビリティを向上させるために、次の点に注意してください。

  • aria 属性とロール属性を使用して、ツールチップの目的を支援技術に伝えます。
  • キーボードのフォーカスとキーボード操作をサポートします。
  • 十分な色のコントラストを提供します。
---

まとめ

この記事では、Bootstrap フレームワークのツールチップコンポーネントについて、基本的な使用方法から高度なカスタマイズオプション、JavaScript の動作、アクセシビリティに関する注意事項まで、詳しく解説しました。これらの情報を活用して、ユーザーエクスペリエンスを向上させるツールチップを実装してください。

関連する質問と回答

  1. 質問: ツールチップの表示時間を変更するにはどうすればよいですか?

    回答: delay オプションを使用して、ツールチップの表示と非表示の遅延時間をミリ秒単位で設定できます。

  2. 質問: ツールチップのコンテンツに HTML を使用するにはどうすればよいですか?

    回答: html オプションを true に設定します。ただし、セキュリティ上の理由から、信頼できるソースからの HTML コンテンツのみを使用してください。

  3. 質問: ツールチップを特定の要素にのみ表示するにはどうすればよいですか?

    回答: selector オプションを使用して、ツールチップをアタッチする子要素を指定します。