elementplus如何实现dialog遮罩层外的元素可以被操作点击

elementplus如何实现dialog遮罩层外的元素可以被操作点击

element plus 组件库中的 dialog 组件可以说是使用频率最高的组件之一,它的效果是弹出一个对话框,外面默认会有一个蒙层。

现在我碰到的需求是,弹窗要正常显示,但是蒙层下面的元素内容又是可以点击的,如何实现呢?

以下是我的解决代码(vue)

首先是 HTML 部分

html 复制代码
<div class="dialog">
  <el-dialog
    v-model="visible"
    title="xxx"
    :close-on-click-modal="false"
    :close-on-press-escape="false"
  >
    <!-- content.... -->
  </el-dialog>
</div>

然后是 css 代码

html 复制代码
<style lang="scss" scoped>
.itrImgDialog {
  :deep(.el-overlay) {
    background-color: transparent;
    pointer-events: none;
  }
  :deep(.el-dialog) {
    pointer-events: auto;
  }
}
</style>

来解释一下:

要实现蒙层外面的内容可以点击被操作,核心是用到了pointer-events; 这个属性用于控制元素是否能成为鼠标事件的目标。

常见的两个值

auto:这是默认值。元素可以响应鼠标事件。

none:元素不会成为鼠标事件的目标。即鼠标事件会"穿透"这个元素,作用在元素下方的其他元素上。

所以我们把 el-overlay 设置为 pointer-events: none; ,但是为了要保证 dialog 本身能够点击,所以将 el-dialog 设置为 pointer-events: auto;

值得注意的是,el-dialog 的 mask 属性不要设置成 false,否则上述修改是不生效的,一定要注意。

希望能帮到你。

相关推荐
鹅天帝1 分钟前
20260407网安学习日志——序列化漏洞
前端·学习·web安全·网络安全·xss
CHANG_THE_WORLD5 分钟前
演示宽度数组解析
linux·服务器·前端
天渺工作室5 分钟前
Nuxt导航网站免费模板,用Nuxt复刻OneNav资源导航站
前端·nuxt·资源导航模板
cch89185 分钟前
PHP vs Vue.js:后端与前端的终极对比
前端·vue.js·php
yuhaiqiang6 分钟前
【珍藏干货】累计阅读破百万:我如何靠“标题公式”把冷门技术写出爆款的?
前端·后端·程序员
一只小阿乐14 分钟前
react 中的Zustand的store使用
前端·javascript·react.js·zustand
我命由我1234514 分钟前
Vue3 开发中,字符串中的 <br\> 标签被直接当作文本显示出来了,而不是被解析为 HTML 换行标签
开发语言·前端·javascript·vue.js·html·ecmascript·html5
亿元程序员31 分钟前
Cocos4开源都快半年了,还有不会用官方MCP的?安排!
前端
北风toto32 分钟前
Vue多文件学习项目综合案例——面经基础版,黑马vue教程
javascript·vue.js·学习
奔跑的呱呱牛2 小时前
xlsx 已停止维护且存在漏洞!推荐一个可直接替代的 npm 库
前端·npm·node.js·xlsx·sheetjs