FxPopover 弹出框
点击 / 悬停触发元素时弹出的内容浮层。不依赖任何 UI 框架,基于 FxTooltip 浮层。
基础用法
trigger 控制触发方式(hover / click / focus / contextmenu,默认 hover),title 与 content 设置内容,也可用插槽。
出现位置
placement 控制弹出方向(top/bottom/left/right + start/end 方向)。
嵌套信息
content 插槽可渲染任意复杂内容(表格、表单等)。
嵌套操作
配合 v-model:visible 可在 content 里放操作按钮,实现类似确认框的交互。
虚拟触发
virtual-triggering + virtual-ref 可绑定外部任意元素作为触发源,无需用 reference 插槽包裹。
局部引入
ts
import { FxPopover } from "@fx/components"API
Attributes
| 名称 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| trigger | 触发方式 | 'hover' | 'click' | 'focus' | 'contextmenu' | hover |
| title | 标题 | string | — |
| content | 内容(也可用插槽) | string | — |
| placement | 出现位置 | Placement | bottom |
| width | 宽度 | string | number | min-content |
| disabled | 是否禁用 | boolean | false |
| visible (v-model:visible) | 是否显示 | boolean | — |
| offset | 偏移 | number | — |
| show-arrow | 是否显示箭头 | boolean | true |
| show-after / hide-after | 显示 / 隐藏延时(ms) | number | 0 / 200 |
| auto-close | 自动隐藏(ms) | number | 0 |
| enterable | 鼠标是否可进入 | boolean | true |
| effect | 主题 | 'light' | 'dark' | light |
| teleported | 是否 teleport | boolean | true |
| append-to | 挂载目标 | string | HTMLElement | body |
| persistent | 是否持久化 | boolean | true |
| popper-class / popper-style | 自定义类名 / 样式 | string | CSSProperties | — |
| transition | 动画名 | string | — |
| tabindex | tabindex | string | number | — |
| trigger-keys | 键盘触发键(KeyboardEvent.code) | string[] | ['Enter','NumpadEnter','Space'] |
| popper-options | 浮层定位配置(底层 @floating-ui) | Record<string, any> | — |
| virtual-triggering ^(fx 增强) | 是否启用虚拟触发 | boolean | false |
| virtual-ref ^(fx 增强) | 虚拟触发元素,配合 virtual-triggering | Measurable | — |
Slots
| 名称 | 说明 |
|---|---|
| reference | 触发元素 |
| default | 触发元素(reference 无时) |
| content | 内容(覆盖 content prop,作用域参数 hide) |
Events
| 名称 | 说明 |
|---|---|
| before-enter / before-leave | 进出场前 |
| after-enter / after-leave | 进出场后 |
| update:visible | 显隐变化 |
实现说明
- 浮层引擎基于
@floating-ui/dom,popper-options为 floating-ui 的配置 - 虚拟触发通过
virtual-triggering+virtual-ref实现,未提供指令语法糖 - 图标走
@fx-core/icon,样式走@fx/stylestoken,亮暗自动跟随
