vue3+element Plus实现弹框的拖拽、可点击底层页面功能

1、template部分

javascript 复制代码
<el-dialog
      :modal="false"
      v-model="dialogVisible"
      title=""
      width="30%"
      draggable
      :close-on-click-modal="false"
      class="message-dialog"
    >
</el-dialog>

必须加的属性

modal:是否去掉遮罩层

close-on-click-modal:是否可以通过点击modal关闭Dialog

draggable:开启拖拽功能

2、css部分

网上查找的资料,css需要修改pointer-events,主要的作用是设置元素是否对鼠标事件做出反应

javascript 复制代码
<style lang="less" scoped>
  .el-dialog__wrapper{
    pointer-events:none;
    /deep/ .el-dialog{
      pointer-events:auto;
    }
  }
</style>

因为 .el-overlay-dialog的父级div也是一个遮罩层,所以没有效果。

最终找到解决方法如下

去掉.el-overlay-dialog的父级div的pointer-events事件。此时拖拽功能不可以使用,使用要给header、body、footer元素的事件加回来。

css 复制代码
<style lang="scss">
.message-dialog {
  .el-dialog__header,
  .el-dialog__body,
  .el-dialog__footer {
    pointer-events: auto !important;
  }
}
:has(> .el-overlay-dialog .message-dialog) {
  pointer-events: none !important;
}
</style>
相关推荐
禅思院几秒前
总篇:异步组件加载的演进之路
前端·架构·前端框架
我的世界洛天依3 分钟前
洛天依讲编程:调音教学|调性 ——MIDI 里的「钩子函数」
linux·前端·javascript
IT_陈寒7 分钟前
JavaScript性能优化完全指南
前端·人工智能·后端
上海云盾-小余10 分钟前
游戏账号盗刷、数据篡改防护全攻略:前端加密 + 后端 WAF 双重加固
前端·游戏
Cobyte16 分钟前
7.响应式系统比对:手写一个响应式状态库并应用在 React 上
前端·javascript·vue.js
渔舟小调17 分钟前
P18 | Element Plus 通用 CRUD 页面模板:一个模板覆盖 80% 管理页面
javascript·vue.js·elementui
深海鱼在掘金18 分钟前
2026年前端开发工程师转型AI Agent开发工程师全指南
前端·人工智能
Beginner x_u21 分钟前
前端八股整理|浏览器|高频小题 01
前端
恋猫de小郭24 分钟前
Copilot 下架 opus ,Qwen 开始按量计费,GLM 限制非代码使用,Token都在涨价,人还比 Token 便宜吗?
前端·人工智能·ai编程
invicinble27 分钟前
总结前端架子--vuecli(前端脚手架)
前端