Popover 弹出框
位置
Popover 组件提供9种不同方向的展示方式。
使用 `content` 属性来设置弹出的提示信息。 `placement` 属性决定了弹出框的位置。 它的值是 `[方向]-[对齐方式]`,有四个方向 `top`, `left`, `right`, `bottom` 和三个对齐方式 `start`, `end`, `null`,默认的对齐方式是 `null`。 以 `placement="left-end"` 为例,弹出框会出现在目标的左侧,并且弹出框的底部和目标的底部对齐。
基础用法
Popover 派生于 `ElTooltip`,因此对于重复的属性,请参考 Tooltip 的文档。
`trigger` 属性用于定义如何触发弹出框:`hover` (悬停),`click` (点击),`focus` (聚焦) 或 `contextmenu` (右键)。 如果你想手动控制它,你可以设置 `:visible`。
虚拟触发
与 Tooltip 一样,Popover 可以由虚拟元素触发,如果你的用例中需要将触发元素和内容元素分开,你绝对应该使用该机制。通常我们使用 `#reference` 来放置我们的触发元素,通过 `triggering-element` API,你可以将触发元素设置在任何你喜欢的地方,但请注意,触发元素应该是一个能接受 `mouse` 和 `keyboard` 事件的元素。
警告
`v-popover` 即将被弃用,请使用 `virtual-ref` 作为替代方案。
丰富的内容
可以在弹出框中嵌套其他组件/元素。下面是一个嵌套表格的例子。
用一个默认的 `slot` 来替换 `content` 属性。
嵌套操作
当然,你也可以嵌套其他操作。 它比使用对话框更轻量。
指令
您仍然可以使用指令的方式来使用弹出框,但这已**不再推荐**,因为它会使您的应用程序变得复杂,您可以参考虚拟触发以获取更多信息。
API
属性
名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
trigger | 如何触发弹出框 | 枚举 | 悬浮时 |
trigger-keys 2.9.8 | 当您点击鼠标聚焦于触发元素时,可以通过键盘定义一组键盘码来控制弹出框的显示 | 数组 | ['Enter','Space'] |
title | 弹出框的标题 | string | — |
effect | Tooltip 的主题,内置主题:`dark` / `light` | enum / string | light |
content | 弹出框的内容,可以用一个默认的 `slot` 来替换 | string | '' |
width | 弹出框的宽度 | string / number | 150 |
placement | 弹出框的位置 | 枚举 | bottom |
disabled | Popover 是否被禁用 | boolean | false |
visible / v-model:visible | 弹出框是否可见 | boolean / null | null |
offset | 弹出框的偏移量,`Popover` 是由 `Tooltip` 构建的,`Popover` 的偏移量是 `undefined`,但 `Tooltip` 的偏移量是 12 | number | undefined |
transition | 弹出框的过渡动画,默认为 el-fade-in-linear | string | — |
show-arrow | 是否显示 tooltip 箭头。 更多信息,请参考 ElPopper | boolean | true |
popper-options | popper.js 的参数 | object | {modifiers: [{name: 'computeStyles',options: {gpuAcceleration: false}}]} |
popper-class | 为弹出框自定义类名 | string | — |
popper-style | 为弹出框自定义样式 | string / object | — |
show-after | 延迟出现,单位毫秒 | number | 0 |
hide-after | 延迟消失,单位毫秒 | number | 200 |
auto-close | 隐藏提示框的超时毫秒数 | number | 0 |
tabindex | Popover 的 tabindex | number / string | 0 |
teleported | 弹出框的下拉列表是否被传送到 body 元素 | boolean | true |
append-to 2.9.10 | 弹出框内容附加到哪个元素 | CSSSelector / HTMLElement | body |
persistent | 当弹出框不活动且 `persistent` 为 `false` 时,弹出框将被销毁 | boolean | true |
virtual-triggering | 指示是否启用虚拟触发 | boolean | — |
virtual-ref | 指示弹出框附加到的引用元素 | HTMLElement | — |
插槽
名称 | 描述 |
---|---|
default | 弹出框的文本内容 |
reference | 触发弹出框的 HTML 元素 |
事件
名称 | 描述 | 类型 |
---|---|---|
show | 弹出框显示时触发 | Function |
before-enter | 在进入过渡之前触发 | Function |
after-enter | 在进入过渡结束后触发 | Function |
hide | 弹出框隐藏时触发 | Function |
before-leave | 在离开过渡之前触发 | Function |
after-leave | 在离开过渡结束后触发 | Function |
暴露
名称 | 描述 | 类型 |
---|---|---|
hide | 隐藏弹出框 | Function |