工具提示
文檔和示例使用 CSS3 添加自定義 Bootstrap 工具提示,使用 CSS3 進行動畫和數據屬性用於本地標題存儲。
使用工具提示插件時要知道的事情:
- 工具提示依賴第三方庫Popper.js進行定位。您必須在 bootstrap.js 之前包含popper.min.js或使用
bootstrap.bundle.min.js
/bootstrap.bundle.js
其中包含 Popper.js 以使工具提示起作用! - 如果您從源代碼構建我們的 JavaScript,它需要
util.js
. - 出於性能原因,工具提示是可選的,因此您必須自己初始化它們。
- 從不顯示具有零長度標題的工具提示。
- 指定
container: 'body'
以避免在更複雜的組件(如我們的輸入組、按鈕組等)中出現渲染問題。 - 在隱藏元素上觸發工具提示將不起作用。
.disabled
或元素的工具提示disabled
必須在包裝元素上觸發。- 當從跨越多行的超鏈接觸發時,工具提示將居中。
white-space: nowrap;
在你的 s 上使用<a>
以避免這種行為。 - 在從 DOM 中刪除相應元素之前,必須隱藏工具提示。
明白了嗎?太好了,讓我們通過一些示例來看看它們是如何工作的。
初始化頁面上所有工具提示的一種方法是通過它們的data-toggle
屬性來選擇它們:
將鼠標懸停在下面的鏈接上以查看工具提示:
緊身褲下一級 keffiyeh你可能沒聽說過。照相亭鬍鬚生牛仔布凸版素食信使包 stumptown。從農場到餐桌的 seitan,mcsweeney 的 fixie 可持續藜麥 8 位美國服裝採用特里·理查森乙烯基青年布。Beard stumptown,開襟羊毛衫 banh mi lomo 雷貓。Tofu biodiesel williamsburg marfa, 4 loko mcsweeney's cleanse vegan chambray。一個真正具有諷刺意味的工匠,無論 keytar,場景農場到餐桌的銀行奧斯汀推特處理freegan cred raw denim single-origin 咖啡病毒。
將鼠標懸停在下面的按鈕上可查看四個工具提示方向:頂部、右側、底部和左側。
並添加了自定義 HTML:
工具提示插件按需生成內容和標記,默認情況下將工具提示放置在其觸發元素之後。
通過 JavaScript 觸發工具提示:
工具提示所需的標記只是一個data
屬性,並且title
在您希望擁有工具提示的 HTML 元素上。生成的工具提示標記相當簡單,儘管它確實需要一個位置(默認情況下,top
由插件設置)。
使工具提示適用於鍵盤和輔助技術用戶
您應該只將工具提示添加到傳統上可通過鍵盤聚焦和交互的 HTML 元素(例如鍊接或表單控件)。儘管可以通過添加屬性使任意 HTML 元素(例如<span>
s)成為焦點tabindex="0"
,但這會在非交互式元素上為鍵盤用戶添加可能令人討厭和令人困惑的製表位。此外,目前大多數輔助技術都不會在這種情況下公佈工具提示。
此外,不要僅僅依靠hover
作為工具提示的觸發器,因為這會使鍵盤用戶無法觸發工具提示。
具有該disabled
屬性的元素不是交互式的,這意味著用戶無法聚焦、懸停或單擊它們來觸發工具提示(或彈出框)。作為一種解決方法,您需要從包裝器<div>
或觸發工具提示<span>
,理想情況下使用 使鍵盤可聚焦tabindex="0"
,並覆蓋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>
選項可以通過數據屬性或 JavaScript 傳遞。對於數據屬性,將選項名稱附加到 中data-
,如data-animation=""
.
姓名 | 類型 | 默認 | 描述 |
---|---|---|---|
動畫 | 布爾值 | 真的 | 對工具提示應用 CSS 淡入淡出過渡 |
容器 | 字符串 | 元素 | 錯誤的 | 錯誤的 | 將工具提示附加到特定元素。示例: |
延遲 | 號碼 | 目的 | 0 | 延遲顯示和隱藏工具提示 (ms) - 不適用於手動觸發類型 如果提供了一個數字,延遲將應用於隱藏/顯示 對象結構為: |
html | 布爾值 | 錯誤的 | 在工具提示中允許 HTML。 如果為 true,則工具提示中的 HTML 標記 如果您擔心 XSS 攻擊,請使用文本。 |
放置 | 字符串 | 功能 | '最佳' | 如何定位工具提示 - 自動 | 頂部 | 底部 | 離開 | 正確的。 當一個函數用於確定位置時,它會以工具提示 DOM 節點作為其第一個參數,觸發元素 DOM 節點作為其第二個參數來調用。 |
選擇器 | 字符串 | 錯誤的 | 錯誤的 | 如果提供了選擇器,則工具提示對象將被委託給指定的目標。在實踐中,這用於啟用動態 HTML 內容以添加彈出框。請參閱this和一個內容豐富的示例。 |
模板 | 細繩 | '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' |
創建工具提示時要使用的基本 HTML。 工具提示
最外層的包裝元素應該有 |
標題 | 字符串 | 元素 | 功能 | '' |
如果給定了一個函數,它將被調用,並將其 |
扳機 | 細繩 | '懸停焦點' | 工具提示是如何觸發的 - 點擊 | 懸停 | 焦點 | 手動的。您可以傳遞多個觸發器;用空格分隔它們。
|
抵消 | 號碼 | 細繩 | 0 | 工具提示相對於其目標的偏移量。有關更多信息,請參閱 Popper.js 的偏移量文檔。 |
後備放置 | 字符串 | 大批 | '翻動' | 允許指定 Popper 將在回退時使用的位置。有關更多信息,請參閱 Popper.js 的行為文檔 |
邊界 | 字符串 | 元素 | '滾動父' | 工具提示的溢出約束邊界。接受 、 、 或 HTMLElement 引用的值'viewport' ('window' 僅限'scrollParent' JavaScript)。有關更多信息,請參閱 Popper.js 的preventOverflow 文檔。 |
單個工具提示的數據屬性
如上所述,可以通過使用數據屬性來指定單個工具提示的選項。
將工具提示處理程序附加到元素集合。
顯示元素的工具提示。在工具提示實際顯示之前(即在事件發生之前)返回給調用者。shown.bs.tooltip
這被認為是工具提示的“手動”觸發。從不顯示具有零長度標題的工具提示。
隱藏元素的工具提示。在工具提示實際上被隱藏之前(即在事件發生之前)返回給調用者。hidden.bs.tooltip
這被認為是工具提示的“手動”觸發。
切換元素的工具提示。在工具提示實際顯示或隱藏之前(即在or事件發生之前)返回給調用者。這被認為是工具提示的“手動”觸發。shown.bs.tooltip
hidden.bs.tooltip
隱藏和破壞元素的工具提示。使用委託(使用選項創建)的selector
工具提示不能在後代觸發器元素上單獨銷毀。
使元素的工具提示能夠顯示。默認情況下啟用工具提示。
移除顯示元素工具提示的能力。工具提示只有在重新啟用後才能顯示。
切換顯示或隱藏元素工具提示的能力。
更新元素工具提示的位置。
事件類型 | 描述 |
---|---|
show.bs.tooltip | show 調用實例方法時立即觸發此事件。 |
顯示的.bs.tooltip | 當工具提示對用戶可見時觸發此事件(將等待 CSS 轉換完成)。 |
hide.bs.tooltip | hide 調用實例方法時立即觸發此事件。 |
hidden.bs.tooltip | 當工具提示完成對用戶隱藏時觸發此事件(將等待 CSS 轉換完成)。 |
插入的.bs.tooltip | 此事件show.bs.tooltip 在工具提示模板添加到 DOM 的事件之後觸發。 |