问题描述:
在弹出el-dialog时,会发现弹出框弹出时,页面会抖动,滚动条被遮罩层覆盖直接没有滚动条了,导致页面缩小了几个像素点(滚动条的宽度);体验感不好,会影响到页面的布局,且页面有的fixed定位的内容也会随着遮罩层的出现移动几个像素点;
后来我找了一下页面具体样式变化,发现弹框在出现时,会对页面的滚动条进行处理,给body增加额外的样式类;可以找到样式类重写,方法1,但是容易影响页面整体不急,不推荐。更直接的办法参考 方法2,直接不让遮罩层罩盖滚动条,滚动条正常展示,但是这样的话即使有遮罩层用户也能正常拉动滚动条;
解决方法:
方法1
- 在全局设置 body 的
padding-right: 0 !important;
不推荐,虽然可以解决问题,但是影响了页面的布局效果;
方法2
- 在
main.js
中,找到引入element的地方,举个例子
js
import Element from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
Element.Dialog.props.lockScroll.default = false;