跳到主要内容

Popover 气泡卡片

与 Tooltip 类似,但可承载标题与更丰富的内容(HTML 结构、列表等),点击或悬停触发。

基础用法​

方位、触发方式与箭头
import { LhButton, LhPopover } from '@lh-ui/react'

export default function Demo() {
return (
<LhPopover title="标题" content="这是气泡卡片的内容。" placement="top">
<LhButton>上方</LhButton>
</LhPopover>
)
}

Popover Props​

属性说明类型可选值默认值
children触发器节点ReactNode——
title标题(渲染为 __title 区)ReactNode——
content内容(渲染为 __content 区)ReactNode——
placement展示位置LhPopoverPlacementtop / bottom / left / right(含 -start / -end)'top'
trigger触发方式LhPopoverTrigger'hover' | 'click' | 'focus' | 'manual''click'
disabled禁用气泡boolean—false
arrow是否显示箭头boolean—true
width浮层宽度string | number——
visible受控显隐boolean——
defaultVisible非受控默认显隐boolean—false
showAfter延迟显示(ms,默认 200 防误触)number—200
hideAfter延迟隐藏(ms,默认 100 留给指针移进浮层)number—100
popperClass浮层自定义类名string——
themeVars组件级主题变量Record<string, string>——
bgPattern组件级背景花纹string——
sx快速布局属性(作用于触发器)SxProps——

Popover 事件​

事件说明回调签名Vue 对照
onVisibleChange显隐变化(受控与非受控都会触发)(visible: boolean) => voidupdate:visible

ref​

forwardRef<HTMLDivElement> —— 触发器根元素。LhPopoverInstance 暴露 show() / hide() / toggle() / isVisible。

圈焦

trigger="click" 时弹出层按对话框语义圈住焦点(Tab 在内部循环),关闭时归还; hover / focus 触发不抢焦点,与 plus 的 isModal 行为一致。

无障碍

浮层为 role="dialog";标题存在时以 aria-labelledby 关联,触发器以 aria-describedby 关联浮层。

样式​

import '@lh-ui/react/style/popover'