Popovers
ポップオーバーについてのドキュメントと例です。
Overview
Popover Pluginを使用するときに知っておくべきこと:
- 第三者のライブラリ Popper.js で位置を取得します。bootstrap.jsの前にpopper.min.js を含めるか Popper.jsを含む
bootstrap.bundle.min.js
かbootstrap.bundle.js
を使用する必要があります。 - 依存関係として tooltip plugin が必要です。
- ソースからJavaScriptを部いるどする場合は requires
util.js
が必要です。 - パフォーマンス上の理由からオプトインするので, 自分で初期化する必要があります。
- 長さが0の
title
やcontent
はポップオーバーを表示されません container: 'body'
を指定すると, 複雑なコンポーネント(インプットグループ,ボタングループなど)のレンダリングの問題が回避可能です。- 非表示要素のポップオーバーは機能しません。
.disabled
,disabled
要素のポップオーバーはそれを囲む要素で起動する必要があります。- 複数行にまたがるアンカーからトリガーすると, アンカーの全体的な幅の中央にポップオーバーが配置されます。この動作を避けるために
<a>
にtext-nowrap
を使用します。 - ポップオーバーは, 対応する要素がDOMから削除される前に非表示にする必要があります。
どのように動作するかは下記を参考にしてください。
Example: Enable popovers everywhere
ページ上のすべてのポップオーバーを初期化する方法の1つは data-toggle
属性でそれらを選択することです。
Example: Using the container
option
ポップオーバーに干渉するスタイルが親要素にある場合は, ポップオーバーのHTMLが代わりにその要素内に表示されるように container
の指定をすることを推奨します。
Example
Four directions
上, 右, 下, 左の4つのオプションがあります。
Dismiss on next click
focus
を使用して, トグル要素とは別の要素の次のクリックに対するポップオーバーを閉じます。
Specific markup required for dismiss-on-next-click
For proper cross-browser and cross-platform behavior, you must use the <a>
tag, not the <button>
tag, and you also must include a tabindex
attribute.
Disabled elements
disabled
属性を持つ要素はインタラクティブではないため,ユーザーがカーソルを移動したりクリックしてポップオーバー(またはツールチップ)をトリガーすることはできません。
ラッパーの <div>
や <span>
からポップオーバーを起動し, 無効化された要素の pointer-events
を上書きする必要があります。
無効化されたポップオーバーのトリガーの場合, 無効化された要素をクリックすると予想されないため, ポップオーバーがユーザーに視覚的なフィードバックとしてすぐに表示されるように data-trigger="hover"
を適用することもできます。
Usage
JavaScriptでポップオーバーを有効にします:
Options
オプションは, データ属性またはJavaScriptを使用して渡すことが可能です。データ属性の場合, data-
にオプション名を追加できます。
Name | Type | Default | Description |
---|---|---|---|
animation | boolean | true | Apply a CSS fade transition to the popover |
container | string | element | false | false |
Appends the popover to a specific element. Example: |
content | string | element | function | '' |
Default content value if If a function is given, it will be called with its |
delay | number | object | 0 |
Delay showing and hiding the popover (ms) - does not apply to manual trigger type If a number is supplied, delay is applied to both hide/show Object structure is: |
html | boolean | false | Insert HTML into the popover. If false, jQuery's text method will be used to insert content into the DOM. Use text if you're worried about XSS attacks. |
placement | string | function | 'right' |
How to position the popover - auto | top | bottom | left | right. When a function is used to determine the placement, it is called with the popover DOM node as its first argument and the triggering element DOM node as its second. The |
selector | string | false | false | If a selector is provided, popover objects will be delegated to the specified targets. In practice, this is used to enable dynamic HTML content to have popovers added. See this and an informative example. |
template | string | '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
Base HTML to use when creating the popover. The popover's The popover's
The outermost wrapper element should have the |
title | string | element | function | '' |
Default title value if If a function is given, it will be called with its |
trigger | string | 'click' | How popover is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space. manual cannot be combined with any other trigger. |
offset | number | string | 0 | Offset of the popover relative to its target. For more information refer to Popper.js's offset docs. |
fallbackPlacement | string | array | 'flip' | Allow to specify which position Popper will use on fallback. For more information refer to Popper.js's behavior docs |
boundary | string | element | 'scrollParent' | Overflow constraint boundary of the popover. Accepts the values of 'viewport' , 'window' , 'scrollParent' , or an HTMLElement reference (JavaScript only). For more information refer to Popper.js's preventOverflow docs. |
Data attributes for individual popovers
Options for individual popovers can alternatively be specified through the use of data attributes, as explained above.
Methods
Asynchronous methods and transitions
All API methods are asynchronous and start a transition. They return to the caller as soon as the transition is started but before it ends. In addition, a method call on a transitioning component will be ignored.
$().popover(options)
ポップオーバーを初期化します。
.popover('show')
ポップオーバーを表示します。実際にポップオーバーが表示される前( show.bs.popover
の発動前)に呼び出し元に戻ります。
ポップオーバーの "manual"
トリガーとみなされます。タイトルとコンテンツの両方が長さゼロのポップオーバーは決して表示されません。
.popover('hide')
ポップオーバーを非表示にします。ポップオーバーが実際に隠される前( hidden.bs.popover
が発生する前)に呼び出し元に戻ります。手動のトリガとみなされます。
.popover('toggle')
ポップオーバーを切り替えます。ポップオーバーの前に呼び出し元に戻りますが, 実際に表示または非表示にされている( shown.bs.popover
, hidden.bs.popover
が発生します)。手動のトリガとみなされます。
.popover('dispose')
ポップオーバーを隠したり破棄したりします。( the selector
option で作成されます。)子孫トリガー要素で個別に破棄することはできません。
.popover('enable')
ポップオーバーに表示する機能を与えます。デフォルトでは, ポップオーバーが有効になっています。
.popover('disable')
ポップオーバーが表示されるようにする機能を削除します。ポップオーバーは, 再び有効にされた場合にのみ表示することができます。
.popover('toggleEnabled')
ポップオーバーが表示または非表示になるように切り替えます。
.popover('update')
ポップオーバーの位置を更新します。
Events
Event Type | Description |
---|---|
show.bs.popover | This event fires immediately when the show instance method is called. |
shown.bs.popover | This event is fired when the popover has been made visible to the user (will wait for CSS transitions to complete). |
hide.bs.popover | This event is fired immediately when the hide instance method has been called. |
hidden.bs.popover | This event is fired when the popover has finished being hidden from the user (will wait for CSS transitions to complete). |
inserted.bs.popover | This event is fired after the show.bs.popover event when the popover template has been added to the DOM. |