Skip to content

Tooltip API

ts
import { bindTooltip } from 'sodialog'
import 'sodialog/style.css'

const tooltip = bindTooltip({ target: '#save', content: '儲存目前設定' })
// 元件卸載時呼叫 tooltip.destroy()

匯出

SoTooltip.bind(options) 等同 bindTooltip(options)SoTooltip.configure(defaults) 等同 configureTooltip(defaults)。全域設定只影響之後的綁定。型別包含 SoTooltipOptionsSoTooltipDefaultsSoTooltipHandleSoTooltipTargetSoTooltipContentSoTooltipPlacement

SoTooltipOptions

選項型別預設值說明
targetstring | Element | Iterable<Element> | ArrayLike<Element>必填字串選擇器使用事件委派,支援稍後加入的元素。
contentstring | (trigger: Element) => stringdata-sod-tooltip僅顯示純文字;空字串不開啟。
placementtop | bottom | left | righttop空間不足時翻轉,並限制在視窗內。
offsetnumber8與目標間距,單位 px。
showDelay / hideDelaynumber500 / 100滑鼠顯示與隱藏延遲,單位 ms;鍵盤聚焦立即顯示。
skipDelaynumber300前一提示關閉後的快速顯示時段。
touchDelay / touchHideDelaynumber600 / 1500觸控長按顯示與放開後隱藏延遲。
disabledbooleanfalse禁止開啟提示。
themeclassic | modern | minimal全域主題僅目前綁定的主題。

時間與間距接受非負數;負數視為 0。content 函式在顯示時執行,並且不解析 HTML。不要同時設定原生 title,以免瀏覽器顯示第二層提示。

SoTooltipHandle

方法或欄位行為
element延遲建立的提示節點;首次顯示前或銷毀後為 null
show(target?)立即顯示。單元素可省略;集合或選擇器須傳入符合的 Element
hide()立即關閉並取消等待中的顯示。
setContent(content)更新內容;開啟中會立即刷新。
isOpen()傳回目前是否可見。
destroy()清理事件、計時器、觀察器、節點與自身加入的 aria-describedby token。可重複呼叫。

同一頁面只顯示一個 SoDialog Tooltip。節點使用 role="tooltip";觸發元素以 aria-describedby 關聯,既有描述 ID 會保留。Escape 關閉提示但不移動焦點。觸控長按不會取消原本的點擊;捲動、明顯移動與指標取消會停止顯示。

Released under the MIT License.