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>
相关推荐
YWL6 小时前
OpenLayers导出功能:地图截图+GeoJSON导出完整方案,从Canvas合并到PDF生成
前端·vue·openlayers
苦瓜小生6 小时前
【前端】【力扣与手撕】十天带你刷完前端算法与手撕,全是最简单好记的最优解法!day4
前端·数据结构·算法·leetcode·面试
mayaairi6 小时前
Vue2 实战进阶:表单数据收集、指令系统与自定义指令全解析
前端·javascript·vue.js
计算机魔术师6 小时前
实测GPT-6 Astra后,我发现过去十年的专业门槛正在失效
前端
虎头金猫6 小时前
Pic Smaller 本地部署:压缩图片、转换格式,再搭建自己的 Web 工具
运维·前端·开源·aigc·ai编程·ai写作
hunterandroid6 小时前
Android ANR 排查实战:从线上告警到主线程卡点定位
android·前端
图扑软件7 小时前
下篇・换墨|主题/多语言/移动端,一套组件全覆盖
前端·javascript·ui·性能优化·数据可视化
程序员老赵7 小时前
Docker 部署 TeX Live:轻松搭建 LaTeX 论文排版编译平台
前端·docker·latex
计算机毕设定制辅导-无忧学长7 小时前
《基于Spring Boot传承之光非遗陶瓷烧造产品交易平台的设计与实现》
java·vue.js·spring boot·后端·毕业设计
Zhu7587 小时前
部署安全的pg数据库,搭配pgadmin实现web界面管理
前端·数据库·安全