程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 快速入手

  • 基础组件

  • 表单组件

  • 数据展示组件

  • 反馈组件

  • 导航组件

  • 其他组件

    • 对话框组件 (Dialog)
    • 文字提示组件 (Tooltip)
    • 弹出框组件 (Popover)
      • 1. 基本用法
        • Popover 属性
        • Popover 方法
        • Popover 事件
        • Popover 插槽
      • 2. 常用示例
        • 1. 点击触发的 Popover
        • 2. 手动控制显示的 Popover
        • 3. 自定义内容的 Popover
        • 4. 带有延迟的 Popover
        • 5. 禁用状态的 Popover
    • 气泡确认框组件 (Popconfirm)
    • 卡片组件 (Card)
    • 走马灯组件 (Carousel)
    • 折叠面板组件 (Collapse)
    • 时间线组件 (Timeline)
    • 分割线组件 (Divider)
    • 日历组件 (Calendar)
    • 图片组件 (Image)
    • 回到顶部组件 (Backtop)
    • 无限滚动 (InfiniteScroll)
    • 无限滚动 (vue-infinite-loading)
    • 抽屉组件 (Drawer)
  • Element-UI
  • 其他组件
scholar
2024-08-12
目录

弹出框组件 (Popover)

# 弹出框组件 (Popover)

Element-UI 的 Popover 组件用于展示额外信息或提示内容,通常在用户悬停、点击或聚焦某个元素时显示。它类似于 Tooltip,但内容更加丰富,可以包含任何类型的 DOM 元素。

提示

Popover 组件官方文档:https://element.eleme.cn/#/zh-CN/component/popover (opens new window)

# 1. 基本用法

基本语法:使用 <el-popover> 标签创建一个弹出框,通过 trigger 属性控制弹出方式,通过 placement 属性控制弹出框的位置。可以通过 slot 传入内容。

<template>
  <el-popover
    ref="popover"
    placement="top"
    width="200"
    trigger="hover"
    content="这是一段内容">
    <el-button slot="reference">悬停我显示 Popover</el-button>
  </el-popover>
</template>
1
2
3
4
5
6
7
8
9
10
  • 触发方式:通过 trigger 属性设置触发弹出框的方式,可以是 click、focus、hover 或 manual。
  • 内容传递:可以通过 content 属性或默认插槽传入弹出框显示的内容。
  • 位置控制:使用 placement 属性设置弹出框出现的位置。
  • image-20240811060701867

# Popover 属性

参数 说明 类型 可选值 默认值
trigger 触发方式 String click/focus/hover/manual click
title 标题 String — —
content 显示的内容,也可以通过 slot 传入 DOM String — —
width 宽度 String, Number — 最小宽度 150px
placement 出现位置 String top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end bottom
disabled Popover 是否可用 Boolean — false
value / v-model 状态是否可见 Boolean — false
offset 出现位置的偏移量 Number — 0
transition 定义渐变动画 String — fade-in-linear
visible-arrow 是否显示 Tooltip 箭头 Boolean — true
popper-options popper.js 的参数 Object 参考 popper.js 文档 { boundariesElement: 'body', gpuAcceleration: false }
popper-class 为 popper 添加类名 String — —
open-delay 触发方式为 hover 时的显示延迟,单位为毫秒 Number — —
close-delay 触发方式为 hover 时的隐藏延迟,单位为毫秒 Number — 200
tabindex Popover 组件的 tabindex Number — 0

# Popover 方法

Popover 组件本身没有定义特定的方法,但可以使用 v-model 结合 trigger="manual" 的方式手动控制弹出框的显示和隐藏。

# Popover 事件

事件名称 说明 回调参数
show 显示时触发 —
after-enter 显示动画播放完毕后触发 —
hide 隐藏时触发 —
after-leave 隐藏动画播放完毕后触发 —

# Popover 插槽

插槽名称 说明
— Popover 内嵌 HTML 内容
reference 触发 Popover 显示的 HTML 元素

# 2. 常用示例

# 1. 点击触发的 Popover

通过 trigger="click" 属性实现点击触发 Popover 显示。

<template>
  <el-popover
    placement="bottom"
    title="标题"
    width="200"
    trigger="click"
    content="这是一段内容">
    <el-button slot="reference">点击我显示 Popover</el-button>
  </el-popover>
</template>
1
2
3
4
5
6
7
8
9
10
  • 点击触发:设置 trigger="click" 后,用户点击按钮即可显示 Popover。
  • image-20240811061158633

# 2. 手动控制显示的 Popover

通过 trigger="manual" 和 v-model 属性手动控制 Popover 的显示和隐藏。

<template>
  <el-popover
    placement="right"
    width="200"
    trigger="manual"
    v-model="visible"
    content="这是一段内容">
    <el-button slot="reference" @click="visible = !visible">手动控制 Popover</el-button>
  </el-popover>
</template>

<script>
export default {
  data() {
    return {
      visible: false // 控制 Popover 显示状态
    };
  }
};
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  • 手动控制:通过 trigger="manual" 和 v-model 可以手动控制 Popover 的显示状态。
  • image-20240811060732860

# 3. 自定义内容的 Popover

通过 slot 插槽传入自定义的 HTML 内容。

<template>
  <el-popover placement="left" width="200" trigger="hover">
    <p>这是一段自定义内容,可以包括任何 HTML 元素。</p>
    <el-button type="text" size="mini">按钮</el-button>
    <template slot="reference">
      <el-button>悬停我显示 Popover</el-button>
    </template>
  </el-popover>
</template>
1
2
3
4
5
6
7
8
9
  • 自定义内容:通过默认插槽可以传入自定义的 HTML 内容,使 Popover 更加灵活。
  • image-20240811060957074

# 4. 带有延迟的 Popover

通过 open-delay 和 close-delay 属性设置 Popover 的显示和隐藏延迟时间。

<template>
  <el-popover
    placement="top"
    width="200"
    trigger="hover"
    content="这是一段内容"
    :open-delay="300"
    :close-delay="500">
    <el-button slot="reference">悬停有延迟 Popover</el-button>
  </el-popover>
</template>
1
2
3
4
5
6
7
8
9
10
11
  • 延迟显示:通过 open-delay 和 close-delay 设置 Popover 的显示和隐藏延迟,使用户体验更流畅。
  • image-20240811061347360

# 5. 禁用状态的 Popover

通过 disabled 属性控制 Popover 是否可用。

<template>
  <el-popover
    placement="bottom"
    width="200"
    trigger="hover"
    content="Popover 已被禁用"
    :disabled="true">
    <el-button slot="reference">禁用的 Popover</el-button>
  </el-popover>
</template>
1
2
3
4
5
6
7
8
9
10
  • 禁用状态:设置 disabled 属性为 true 时,Popover 不会被触发显示。
  • image-20240811061300804

总结

  • 灵活的触发方式:Popover 支持点击、悬停、聚焦和手动控制等多种触发方式,适应不同场景的需求。
  • 自定义内容:通过插槽可以轻松定制 Popover 显示的内容,使其不仅限于文本提示。
  • 延迟与动画:提供了 open-delay、close-delay 等属性,以及 transition 动画控制,使 Popover 的显示更加平滑自然。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
文字提示组件 (Tooltip)
气泡确认框组件 (Popconfirm)

← 文字提示组件 (Tooltip) 气泡确认框组件 (Popconfirm)→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式