Tooltip

在悬停或聚焦时显示简短说明,不挤动周围内容。

适用场景

  • 当界面需要以下行为时使用 Tooltip:在悬停或聚焦时显示简短说明,不挤动周围内容。

安装

选择安装方式,用法示例将同步更新导入路径。

$ bunx --bun shadcn-vue@2.8.2 add https://orvui.efu.me/r/tooltip.json

此示例还需要:

终端

首次使用时,将安装的 src/components/orvui/styles.css 导入项目样式入口。

示例

默认

tooltip.vue

为单个触发器提供简短标签,并选择显示方向与箭头。

Hover or focus. Press Esc to dismiss.

Toolbar

toolbar.vue

在工具栏提示之间共享时序,并为仅图标控件提供名称。

The first label waits, the next ones open instantly. Click hides it until the pointer leaves.

状态与事件

需要由表单、路由或父组件管理时,绑定下列状态并接收对应更新。v-model 是属性与 update 事件的简写;值的类型应与 API 一致。

组件状态绑定
组件Vue 绑定更新事件
Tooltipv-model:openbooleanupdate:open

可选受控属性未传入时,按组件文档的默认行为工作;不要用固定的 false 或空值代替未传入。异步请求和持久化在应用中处理,再把结果传回组件。

API 参考

默认

Tooltip

content?
boolean | null | string | number | void | VNode<RendererNode, RendererElement, { [key: string]: any; }> | VNodeArrayChildren
undefined
open?
boolean
undefined
defaultOpen?
boolean
false
delay?
number
timing.value.delay
closeDelay?
number
timing.value.closeDelay
disabled?
boolean
false
asLabel?
boolean
false
followCursor?
boolean
false
anchorRef?
null | HTMLElement | SVGElement | Ref<TooltipAnchor | null, TooltipAnchor | null>
—
id?
string
useId()
side?
"top" | "bottom" | "left" | "right"
—
align?
"start" | "center" | "end"
—
sideOffset?
number
—
arrow?
boolean
false
anchorPoint?
TooltipPoint
—

事件

update:open
—
@update:open
openChange
—
@openChange

插槽

default
() => VNodeChild
#default

TooltipContent

side?
"top" | "bottom" | "left" | "right"
"top"
align?
"start" | "center" | "end"
"center"
sideOffset?
number
(point ? 12 : 8)
arrow?
boolean
false
anchorPoint?
TooltipPoint
—

插槽

default
() => VNodeChild
#default

Toolbar

Tooltip

content?
boolean | null | string | number | void | VNode<RendererNode, RendererElement, { [key: string]: any; }> | VNodeArrayChildren
undefined
open?
boolean
undefined
defaultOpen?
boolean
false
delay?
number
timing.value.delay
closeDelay?
number
timing.value.closeDelay
disabled?
boolean
false
asLabel?
boolean
false
followCursor?
boolean
false
anchorRef?
null | HTMLElement | SVGElement | Ref<TooltipAnchor | null, TooltipAnchor | null>
—
id?
string
useId()
side?
"top" | "bottom" | "left" | "right"
—
align?
"start" | "center" | "end"
—
sideOffset?
number
—
arrow?
boolean
false
anchorPoint?
TooltipPoint
—

事件

update:open
—
@update:open
openChange
—
@openChange

插槽

default
() => VNodeChild
#default

TooltipContent

side?
"top" | "bottom" | "left" | "right"
"top"
align?
"start" | "center" | "end"
"center"
sideOffset?
number
(point ? 12 : 8)
arrow?
boolean
false
anchorPoint?
TooltipPoint
—

插槽

default
() => VNodeChild
#default

TooltipProvider

delay?
number
inherited.value.delay
closeDelay?
number
inherited.value.closeDelay
skipDelay?
number
props.skipDelayDuration
skipDelayDuration?
number
—

插槽

default
() => VNodeChild
#default

无障碍

为交互控件提供明确的无障碍名称。保留文档中的键盘路径、可见焦点与减少动态效果状态;自定义插槽应继续保留所替代部件的语义。

常见问题

如何配置 Tooltip?
通过 content、open、defaultOpen、delay、closeDelay、disabled、asLabel、followCursor、anchorRef、id、side、align、sideOffset、arrow、anchorPoint 配置 Tooltip;API 表列出其类型与默认值。
如何连接到应用状态?
监听 update:open、openChange,将组件连接到应用状态。
可以在服务端渲染吗?
可以在 Vue SSR 应用中正常渲染。服务端与客户端的初始 props 应保持一致;浏览器测量与交互资源在挂载后启动。

更新于