element-ui dialog弹窗 设置点击空白处不关闭

根据官网提供方法

场景:vue实现的网站有两个弹窗同时出现时,关闭报警,批量进度条弹窗也关闭了,

1、每一个页面都有可能出现的报警弹窗,

2、页面a批量操控硬件添加操作的进度条弹窗

开始以为是因为点击报警弹窗,相当于点击modal(空白处)所以导致关闭报警弹窗的同时也关闭了进度条弹窗,所以涉及到了空白处误关闭了进度条的问题;官方方法如下:

需求:点击空白处不关闭弹窗

实现::close-on-click-modal="false"

需求:点击Esc不关闭弹窗

实现::close-on-press-escape="false" 

### 解决 `el-dialog` 点击外部导致弹窗宽高变化 当使用 Element UI 的 `el-dialog` 组件时,默认情况下点击模态背景可以关闭对话框。然而,在某些场景下,如果实现了自定义功能如拖拽调整宽度,则可能遇到点击外部区域导致弹窗尺寸意外变动的问题。 为了防止这种情况发生,可以在初始化阶段禁用默认行为并实现特定逻辑来控制何时允许关闭对话框以及如何保持其大小稳定: #### 方法一:通过配置属性阻止点击遮罩层关闭 设置 `close-on-click-modal=false` 属性能够有效避免用户误触造成窗口关闭的同时也间接解决了因触发事件链引起的尺寸重置现象[^2]。 ```html <el-dialog v-dialogDrag id="addRoleDialog" :before-close="handleClose" :visible.sync="dialogVisible" append-to-body title="添加角色" width="28%" close-on-click-modal="false"> </el-dialog> ``` #### 方法二:利用钩子函数拦截关闭动作 对于更复杂的交互需求,比如仅在满足一定条件下才允许关闭操作,可通过监听 `before-close` 钩子来进行干预处理。在此过程中也可以同步保存当前的样式状态以便恢复[^1]。 ```javascript methods: { handleClose(done) { this.$confirm('确认要关闭吗?') .then(_ => { // 可选地存储 dialog 当前的状态 (例如位置/大小) done(); }) .catch(_ => {}); } } ``` 另外值得注意的是,若已经集成了第三方插件用于增强 `el-dialog` 功能(如拖拽),则应确保这些额外特性会干扰到基础的行为模式。检查所使用的指令或方法是否有提供相应的选项去管理此类副作用[^4]。 最后提醒一点,针对多标题切换显示同内容的情况,虽然这与解决点击关闭无关,但在设计整体用户体验时仍需考虑各部分之间的协调一致性[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值