问题描述:
在dialog中使用select选择器和radio单选框点击导致对话框闪烁,为什么会出现这种情况呢?我们先来看下解决方法!
解决方法:
1.在对话框中添加backface-visibility属性 — 意为旋转元素不面向屏幕时隐藏
.el-dialog{ backface-visibility:hidden; -webkit-backface-visibility:hidden; /* Chrome 和 Safari */ -moz-backface-visibility:hidden; /* Firefox */ -ms-backface-visibility:hidden; /* Internet Explorer */ }
存在的问题:虽然不会闪烁了但会使对话框整体模糊
2.去掉select组件中的transition值
.el-input__icon { transition: none!important; }
存在的问题:会消除图标的过渡动画,但不影响使用)
3.提高select所在父级元素的外边距!(除了外观无其他影响)
看了上述的解决方法,相信大家也发现了问题的所在,没错罪魁祸首就是select下的el-icon-arrow-up图标
那为什么这个图标会影响到对话框的闪烁呢?
原来啊,在本身组件的基础上对select中的输入框进行了高度上的修改,而并未对select组件上的图标进行修改!也就是说如果不对高度进行修改是不会出现这个问题的,悲伤!我怎么给碰上了!
暂时这是我自己验证可行的方案,如有更好的方案,欢迎大佬指点!
8.15追加:
今天在对话框中使用表格的多选功能又遇到了点击使对话框闪烁的问题,最后发现是因为修改了表格的行高度使多选框的点击过渡影响到了对话框,解决方法如下:
.el-checkbox__inner::after { transition: none!important; }