Skip to content

Popover 气泡弹出框

Popover 在内容周围弹出一些隐藏的信息。Popover 里面没什么内置样式,在里面填什么主要靠你。

基础用法

弹出位置

展示图标

非受控模式

你可以把 Popover 当做受控组件或非受控组件使用:

  • 当绑定 v-model:visible 时,Popover 为受控组件,此时组件的显示完全由 v-model:visible 的值决定。
  • 当未绑定 v-model:visible 时,Popover 为非受控组件,此时你可以通过 visible 属性传入一个默认值,组件值的显示由组件自身控制。

API

Props

参数说明类型默认值
v-model:visiblePopover 是否显示booleanfalse
theme主题风格PopoverThemelight
actions选项列表PopoverAction[][]
actions-direction选项列表的排列方向PopoverActionsDirectionvertical
trigger触发方式PopoverTriggerclick
show-arrow是否展示小箭头booleantrue
placement弹出位置PopoverPlacementbottom
icon-prefix图标类名前缀,等同于 Icon 组件的 class-prefix 属性stringr-icon
width宽度string / number150
offset出现位置的偏移量[number, number][0, 8]
show-after在触发后多久显示内容,单位毫秒number0
hide-after延迟关闭,单位毫秒number200
auto-closetooltip 出现后自动隐藏延时,单位毫秒number0
enterable鼠标是否可进入到 tooltip 中Booleantrue
close-on-click-outside是否在点击外部元素后关闭菜单booleantrue
teleport指定挂载的节点,等同于 Teleport 组件的 to 属性string / Elementbody
disabledPopover 是否可用booleanfalse
popper-optionspopper.js参数object请参考popper.js{}
popper-class自定义弹窗样式string / Array / object-
popper-style自定义弹窗样式object-
persistent当 popover 组件长时间不触发且 persistent 属性设置为 false 时, popover 将会被删除booleantrue

PopoverAction 数据结构

actions 属性是一个由对象构成的数组,数组中的每个对象配置一列,对象可以包含以下值:

键名说明类型
text选项文字string
icon文字左侧的图标,支持传入图标或图片链接,等同于 Icon 组件的 name 属性string
color选项文字颜色string
disabled是否为禁用状态boolean
className为对应选项添加额外的类名string / Array / object

Events

事件名说明回调参数
select点击选项时触发action: PopoverAction, index: number
before-enter显示动画播放前触发-
before-leave隐藏动画播放前触发-
after-enter显示动画播放完毕后触发-
after-leave隐藏动画播放完毕后触发-

Slots

名称说明参数
default自定义菜单内容-
reference触发 Popover 显示的元素内容-
action自定义选项内容{ action: PopoverAction, index: number }

类型定义

组件导出以下类型定义:

ts
import type {
  PopoverProps,
  PopoverTheme,
  PopoverAction,
  PopoverActionsDirection,
  PopoverTrigger,
  PopoverPlacement
} from 'ryxon'

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值描述
--r-popover-action-width128px
--r-popover-action-height44px
--r-popover-action-font-sizevar(--r-font-size-md)
--r-popover-action-icon-size20px
--r-popover-horizontal-action-height34px
--r-popover-horizontal-action-icon-size16px
--r-popover-light-action-disabled-text-colorvar(--r-text-color-3)
--r-popover-dark-action-disabled-text-colorvar(--r-text-color-2)

常见问题

Popover 的点击事件无法正确触发?

这种情况通常是由于项目中引入了 fastclick 库导致的。建议移除 fastclick,或者配置 fastclickignore 规则

Released under the MIT License.