Skip to content

Tooltip 文字提示

简单的文字提示气泡,hover 或键盘聚焦触发。

基础用法

悬停触发

悬停查看

放置方向

四个方向

空间不足时自动沿主轴翻转,并在视口边缘避让。

箭头

默认显示指向触发元素边缘的箭头;arrow="false" 隐藏箭头;arrow-point-at-center 让箭头指向触发元素中心(视口边缘避让导致面板偏移时,箭头仍指向锚点中心)。

箭头显隐与指向

默认无箭头指向中心

arrow-position="merge" 让箭头与面板角融合成直角三角尖(通用形态,仅 *-start / *-end placement 生效):直角三角贴角、直角边与面板两边共线,尖端正交指向锚点所在侧。

箭头 merge 融合模式

bottom-start + merge

视口边缘自动调整

默认空间不足时自动沿主轴翻转并避让视口边缘;auto-adjust-overflow="false" 关闭自动调整,面板保持声明 placement(可能溢出视口)。

关闭自动调整

关闭自动调整

聚焦触发

键盘聚焦触发

Tab 聚焦我

受控显示

open 属性受控:外部按钮设置 / 移除 open 即可显示 / 隐藏提示(hover / focus 触发仍叠加生效)。

受控显示(open 属性)

显示隐藏open: false触发元素

长文本

长文本与最大宽度

悬停查看长提示

虚拟触发

虚拟模式(virtual)不绑定宿主触发元素:open 完全受外部控制,位置由 virtual-anchor(锚点元素选择器)或 virtual-x / virtual-y(视口坐标)指定,placement 仍生效。适合图表点位、拖拽中的浮层提示等无法用普通触发元素的场景。

虚拟锚点跟随(图表点位)

月份 →

悬停任意点位查看提示(tooltip 锚定该点显示)。

坐标跟随(鼠标移动)

在此区域内移动鼠标 未跟随

触发方式

trigger 属性支持空格分隔的多选组合:hover(悬停)/ focus(聚焦)/ click(点击)/ contextmenu(右键)/ touch(长按)/ manual(完全受控)。默认 hover focus

点击触发

点击触发

右键触发

右键我

手动触发(manual)

显示隐藏受控触发元素

显示延迟

open-delay / close-delay 控制悬停显示/隐藏的延迟(ms),避免快速滑过时误触发。

显示延迟与隐藏延迟

延迟 300ms 显示

连续在多个触发元素间快速移动时,skip-delay-duration(默认 300ms)会让下一个 tooltip 跳过 open-delay 立即显示,保持响应连贯。

延迟组(skip-delay-duration)

悬停我(从上一个移过来会立即显示)再悬停我

触屏设备上 trigger="touch" 长按显示(touch-delay 控制长按时长,默认 500ms)。

触屏长按触发

长按我(触屏)

富内容

content 属性显示纯文本;需要富内容(链接、图标、多行)时用 slot="content" 插槽,插槽存在时优先于属性文本。

富内容插槽

悬停查看富内容关键提示可以包含 链接 或图标等富内容

键盘可达

打开状态下按 Esc 关闭,焦点还原到触发元素;打开时触发元素自动关联 aria-describedby 指向浮层(屏幕阅读器可读)。

Esc 关闭 + aria-describedby

聚焦后按 Esc

trigger-keys 可指定按键(空格分隔)在聚焦时打开,如 trigger-keys="F1"

trigger-keys 按键打开

聚焦后按 F1

最大宽度

默认最大宽度 240px--oas-tooltip-max-width token 开口),max-width 属性可覆盖(数字或 CSS 长度)。

自定义最大宽度

max-width=360

禁用

disabled 时 tooltip 不显示(hover / 受控 open 均不生效)。

禁用

禁用提示

可悬停浮层

interactive 让浮层可悬停(鼠标移入浮层不关闭,浮层内链接可达)。

interactive 可悬停

interactive

偏移与碰撞

offset 控制主轴距离(默认 8px),skidding 控制交叉轴偏移,collision-padding 控制视口边缘避让边距(默认 4px)。

offset / skidding

offset=16skidding=24

collision-padding

collision-padding=20

颜色变体

color 属性支持语义色(primary / success / warning / danger)、11 预设名(如 magentablue)或任意 CSS 色值,全部走 token(含 dark 变体)。

颜色变体

primarysuccesswarningdanger

挂载点

append-to 把浮层挂载到指定容器(body 或 CSS 选择器),脱离裁剪上下文(如 overflow: hidden 祖先)。

append-to body

挂载到 body

自动关闭

auto-close(ms)在打开后自动关闭,适合引导提示等场景。

auto-close

点击后自动关闭

新鲜内容

fresh 默认开启:关闭状态下内容变化也即时同步(再次打开所见即最新);fresh="false" 时关闭期间冻结内容。

fresh 内容同步

悬停查看(下方按钮改内容)改内容

边界

空内容

无内容提示

API

属性

属性说明类型默认值
append-to浮层挂载点:body 或 CSS 选择器。把浮层移入目标容器的独立 shadow(样式作用域保真),脱离 overflow: hidden / transform 等裁剪上下文;挂载期间 ::part(tip) 无法从宿主穿透,定制走 CSS 变量或类选择器string
arrow是否显示箭头(默认 true;arrow="false" 隐藏,箭头元素与 ::part(arrow) 保留)stringtrue
arrow-point-at-center箭头指向触发元素中心(默认指向触发元素边缘;视口边缘避让导致面板偏移时箭头仍指向锚点中心)boolean
arrow-position箭头形态:center(默认,箭头在面板边缘居中)/ merge(仅 *-start/*-end placement 生效,直角三角与面板角共边融合:直角贴角点、直角边与面板两边共线,尖端正交指向锚点,通用形态)stringcenter
auto-adjust-overflow视口边缘自动翻转与避让(默认 true;"false" 关闭,保持声明 placement,可能溢出视口)stringtrue
auto-close打开后自动关闭时长(ms),0 或缺省不自动关闭
close-delay隐藏延迟(ms,默认 0):mouseleave/focusout 后延迟关闭
collision-padding视口边缘避让边距(px,默认 4):浮层被视口夹取时与边缘保留的距离
color颜色变体:语义色 primary/success/warning/danger、11 预设名(如 magentablue)或任意 CSS 色值;全部走 token(含 dark 变体),箭头底色同步string
content提示内容文本(slot="content" 富内容存在时优先于属性文本)string
disabled禁用:tooltip 不显示(hover / 受控 open 均不生效)boolean
fresh内容新鲜度(默认 true):关闭期间内容变化也即时同步;"false" 时关闭期间冻结内容,再次打开才更新stringtrue
interactive浮层可悬停:鼠标移入浮层不关闭(pointer-events: auto),浮层内链接可达boolean
max-width浮层最大宽度(数字补 px 或 CSS 长度,默认走 --oas-tooltip-max-width token 240px)string
offset主轴距离(px,默认 8):浮层与锚点沿主轴的间隔
open受控显示(布尔属性,存在即显示)boolean
open-delay显示延迟(ms,默认 0):mouseenter/focusin 后延迟打开;skip-delay-duration 命中时跳过
placement浮层位置(12 向:top/bottom/left/right × start/center/end)Placementtop
skidding交叉轴偏移(px,默认 0):top/bottom 系列沿水平轴(正右负左)、left/right 系列沿垂直轴(正下负上)
skip-delay-duration全局延迟组阈值(ms,默认 300):某 tooltip 关闭后这段时间内打开下一个 tooltip 时跳过 open-delay 立即显示(连续悬停响应连贯);"0" 关闭该行为
touch-delaytouch 长按触发时长(ms,默认 500):triggertouch 时 pointerdown 长按到点打开,提前抬手/移出取消
trigger触发方式(空格分隔多选):hover / focus / click / contextmenu / touch / manual,默认 hover focusmanual 完全受控stringhover focus
trigger-keys指定按键(空格分隔,如 F1):焦点在触发元素上时按该键打开string
virtual虚拟触发模式:不绑定宿主触发元素,open 完全受外部控制,位置由 virtual-anchorvirtual-x/virtual-y 指定(适合图表点位、拖拽中的浮层提示)boolean
virtual-anchor虚拟锚点元素选择器(如 #chart-point-1),tooltip 按该元素矩形定位;与 virtual-x/virtual-y 二选一,坐标优先
virtual-x虚拟锚点视口 X 坐标(px,如鼠标 clientX),与 virtual-y 同时设置时按坐标定位
virtual-y虚拟锚点视口 Y 坐标(px,如鼠标 clientY),与 virtual-x 同时设置时按坐标定位

事件

事件说明
oas-open-changeopen 状态变化(显示/隐藏)时派发,detail: { open }

插槽

名称说明
默认触发元素(hover/focus 触发);virtual 虚拟模式下可省略
content富内容(存在时优先于 content 属性文本显示)

oas-open-changeopen 状态变化(显示/隐藏)时派发,detail: { open }。hover / focus 触发显隐;role="tooltip",浮层 pointer-events: none 不拦截交互。

基于 MIT OR Apache-2.0 双许可发布