iview使用Modal时打开关闭页面抖动问题

本文详细解析了iview Modal组件在打开关闭时出现抖动的原因,主要由于页面滚动条样式被临时修改。通过在主样式文件中设置body元素的overflow属性为auto,可以有效避免该问题,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用iview的Modal时经常会出现抖动的问题

其实大多数的ui库都有这个问题,最好笑的是iview的文档本身也是有这个问题的。言归正传,这样的抖动是肯定不会让客户满意的,这时候该怎么解决呢?当然是开动你的小脑经,打开调试窗口,打开你的Modal,当模态框打开关闭时,你的body是不是多了点东西
在这里插入图片描述
在这里插入图片描述
这就是罪魁祸首了。
知道了具体是什么原因导致的,那解决起来就简单了,在打开和关闭的时候弹框会分别先加上overflow: hidden导致你的页面滚动条没了,关闭的时候移除样式。这就是抖动为什么会发生的主要原因了。
接下来就看你的具体要求了,找到你的common.css或者别的主样式里加上

body {
	overflow: auto;
}

完美,收工。
经过这么一次,大家应该也知道了,此类问题一般都是因为ui库改变了样式导致的,那么接下来只要找到对应的变化,然后对症下药就可以了。

iView中,如果你想防止Modal在数据校验失败立即关闭,可以在`confirm`按钮的`on-ok`事件处理程序中添加验证步骤。如果验证失败,你可以阻止默认的操作并设置一个标识符来标记Modal的状态,然后展示错误消息。以下是示例代码: ```html <Modal v-model="showModal" title="确认操作"> <p>请填写必填字段:</p> <FormItem prop="requiredField"> <Input v-model="form.requiredField" placeholder="请输入内容"></Input> </FormItem> <div slot="footer"> <Button type="text" @click.stop="checkForm">提交</Button> <Button type="primary" :disabled="!isValid" @click.stop="submit">确定</Button> </div> </Modal> <script> export default { data() { return { showModal: false, form: { requiredField: '', }, isValid: true, }; }, methods: { checkForm() { this.isValid = validateRequiredField(this.form.requiredField); // 假设validateRequiredField是你自定义的校验函数 }, submit() { if (this.isValid) { // 执行保存或确认操作 this.save(); } else { // 验证失败,取消默认的关闭行为 event.preventDefault(); // 或者使用event.stopPropagation() this.showAlert('请确保所有字段已填写'); // 显示错误提示 } }, save() { this.showModal = false; // 验证成功后关闭Modal // 其他保存操作... }, }, }; </script> ``` 在这个例子中,当用户点击“提交”按钮,首先会调用`checkForm`函数进行校验。如果校验失败,`isValid`将变为`false`,同阻止默认的关闭行为,并显示错误消息。只有当`isValid`为`true`,才执行保存操作并关闭Modal
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值