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.