element-plus打开Dialog、图片预览导致页面抖动

本文详细介绍了在Vue项目中使用Element-Plus的Scrollbar组件替换浏览器默认滚动条时遇到的抖动问题。通过分析Element官网的实现方式,发现需要固定外层元素高度以避免出现双滚动条。通过设置Scrollbar组件的高度为100vh并确保内部元素高度大于外层,成功解决了抖动问题。同时,还提醒注意移除body的边距以防止额外滚动条的出现。
摘要由CSDN通过智能技术生成
解决方法

使用el-scollbar组件替代浏览器在body上的滚动条
App.vue中套上这个组件,所有页面都显示在RouterView里面
在这里插入图片描述

抖动情况:

在这里插入图片描述
但是发现element-plus官方文档里面的预览并没有抖动,于是就f12看了下他们是咋实现的。
在这里插入图片描述
可以看到这里element官网是使用了scrollbar组件
于是我也去使用这个组件
App.vue
在这里插入图片描述
但是发现问题依旧。经过一番排查,这里还需要设置一下高度,要让外层的元素高度固定。只要内层高度大于外层高度,那么el-scrollbar就会产生滚动条。
但是要注意不要让外层元素高度超过100vh,比如设置120vh,这种情况会出现两个滚动条,因为scrollbar组件只是隐藏了 被该组件包含的 容器的滚动条,并不包括在body上产生的滚动条
在这里插入图片描述

这里el官网的方法是对el-scrollbar__wrap设置了height:100vh
在这里插入图片描述
我这里为了简便起见,就把el-scrollbar设置成100vh,因为下面的el-scrollbar__wrap有个height:100%属性会继承父级高度,所以效果和上面一样的
App.vue
在这里插入图片描述

修复效果

在这里插入图片描述
如果浏览器滚动条和scrollbar组件同时出现的话,可能原因是没有去除body的边距
在这里插入图片描述
index.html去除所有元素内外边距就好了

* {
	margin: 0;
	padding: 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值