Skip to content

弹出框组件

弹出框组件

弹出框组件用于在元素附近弹出一个轻量级的提示框,可以包含各种自定义内容。常用于展示提示信息、操作菜单、详细说明等。

基础用法

基础的弹出框,提供了hover和click两种触发方式。

弹出框组件支持hover和click两种触发方式,可以根据实际需求选择合适的交互方式。

显示代码箭头
复制GitHub

分组用法

可以将弹出框应用于一组元素,同时管理它们的弹出行为。

将弹出框应用于一组元素,这些元素共享同一个弹出内容,适用于组合按钮等场景。

按钮组弹出

菜单项弹出

提示:当一组元素需要共享同一个弹出内容时,可以将它们包装在同一个t-popover组件内部。

显示代码箭头
复制GitHub

弹出位置

支持四个方向弹出:上、右、下、左,可以根据页面空间选择合适的弹出方向。

弹出框支持四个方向弹出,可以根据页面空间选择合适的弹出方向。

弹出位置

应用场景

  • top(上):适用于按钮位于底部区域的场景
  • right(右):适用于按钮位于左侧区域的场景
  • bottom(下):适用于按钮位于顶部区域的场景
  • left(左):适用于按钮位于右侧区域的场景

通过 position 属性设置弹出位置

显示代码箭头
复制GitHub

自定义样式

可以自定义弹出框的宽度、圆角、内边距、阴影等样式。

可以自定义弹出框的宽度、圆角、内边距、阴影等样式,以满足不同的设计需求。

自定义宽度和圆角

自定义内边距

自定义阴影

无箭头样式

自定义间距

样式配置项:
  • width:设置弹出框宽度
  • radius:设置弹出框圆角
  • padding:设置弹出框内边距
  • box-shadow:设置弹出框阴影
  • show-arrow:控制是否显示箭头
  • gap:设置弹出框与触发元素的间距
显示代码箭头
复制GitHub

自定义内容

可以通过插槽自定义弹出框的内容,支持任意HTML结构。

弹出框支持通过插槽自定义内容,包括标题、内容和底部区域。

可用插槽

  • default:触发元素
  • title:自定义标题区域
  • content:自定义内容区域
  • footer:自定义底部区域
显示代码箭头
复制GitHub

触发配置

支持多种交互方式配置,如延迟隐藏、按ESC键关闭、点击其他区域关闭等。

弹出框支持多种触发方式,包括悬停、点击、聚焦和手动触发。

悬停触发 (hover)

点击触发 (click)

聚焦触发 (focus)

手动触发 (manual)

悬停延迟 (delay)

触发方式属性

  • type:指定触发方式,可选值为 hoverclickfocusmanual
  • hover-delay:悬停触发的显示延迟时间,单位为毫秒
  • hide-delay:悬停触发的隐藏延迟时间,单位为毫秒
  • visible:手动控制弹出框显示状态(仅在 type="manual" 时生效)
显示代码箭头
复制GitHub

遮罩层

可以为弹出框添加遮罩层,提供更聚焦的交互体验。

弹出框可以配置模态遮罩层,使其具有类似对话框的效果。

显示代码箭头
复制GitHub

事件处理

弹出框提供了多种事件,用于监听鼠标进入、离开、状态变化等。

弹出框组件提供了多种事件,用于监听鼠标进入、离开、显示状态变化等。

支持的事件

  • hover-enter:鼠标进入触发元素时触发
  • hover-out:鼠标离开触发元素时触发
  • model-change:弹出框显示状态变化时触发
  • open:弹出框打开时触发
  • close:弹出框关闭时触发
  • click-model:点击遮罩层时触发(在有遮罩层时有效)
显示代码箭头
复制GitHub

弹出框 API

TPopover 属性

属性名说明类型可选值默认值
width弹出框宽度string / number
disabled是否禁用booleantrue / falsefalse
type触发方式stringhover / click / nonehover
content显示内容string
radius圆角大小array / number4
padding内边距大小array / number[8, 12, 8, 12]
box-shadow阴影配置array
gap弹出框与触发元素的间距number10
hide-after隐藏延迟时间(毫秒)number0
position弹出位置stringtop / right / bottom / lefttop
append-to渲染的目标位置string / elementbody
auto-position是否自动调整位置booleantrue / falsetrue
show-arrow是否显示箭头booleantrue / falsetrue
custom自定义位置坐标object {x: number, y: number}
dialog-animation是否使用对话框动画booleantrue / falsefalse
drawer-animation是否使用抽屉动画booleantrue / falsefalse
close-on-press-escape是否支持ESC键关闭booleantrue / falsefalse
close-on-press-other是否点击其他区域关闭booleantrue / falsefalse
is-modal是否显示遮罩层booleantrue / falsefalse
is-modal-nest是否允许遮罩层嵌套booleantrue / falsefalse

事件

事件名说明回调参数
click-model点击遮罩层时触发
hover-enter鼠标进入时触发(el: HTMLElement)
hover-out鼠标离开时触发(el: HTMLElement)
model-change显示状态改变时触发
open弹出框打开时触发
close弹出框关闭时触发

插槽

插槽名说明作用域参数
default触发弹出框显示的元素
content弹出框内容

样式变量

变量名说明
$popover-bg-color弹出框背景色
$popover-text-color弹出框文字颜色
$popover-border-radius弹出框圆角
$popover-shadow弹出框阴影
$popover-arrow-size弹出框箭头大小
</rewritten_file>

基于MIT许可发布