在使用element-ui的el-dialog时,由于遮罩层的出现,导致页面的滚动条隐藏,从而使页面出现闪动的效果。
当遇到这个问题时,我想能不能是滚动条悬浮于页面上,及脱离文本流,从而不影响页面的宽度,于是我百度时发现了这个css属性,及在body或者盒子上添加
body:{
overflow:overlay
}
这个可以使页面滚动条的隐藏和显示影响页面的宽度,但是这个问题存在兼容性问题,且是一个被‘废弃’的属性,于是我就放弃了这个想法。
于是我继续翻看element-ui的文档,发现el-dialog中有一个属性,scroll-lock,我尝试将scroll-lock设置为false,果然,能行,且没有兼容性问题,但是我现在不可能一个个项目中的dialog中添加
scroll-lock=false,于是我就把这段代码放在main.js里修改默认值
import ElementUI from 'element-ui';
ElementUI.Dialog.props.lockScroll.default = false;
这下全局都会发生改变,闪动问题解决,但这只是个折中的方案,如果有更好的欢迎在评论区中提出