我一直在使用-webkit-backface-visibility: hidden;
来阻止css过渡闪烁,但结果我的position: fixed;
不再在FF或Safari中修复(请参阅小提琴:http://jsfiddle.net/liguha/ssqksnv0/)
任何替代方案?最好没有javascript来解决这个问题。
答案 0 :(得分:2)
与此斗争了好几次。在" *,*:之前,*:之后"可能导致问题。 试图在任何和所有元素上获得图形加速可能会导致下游的一些延迟。盒子大小通常是一个安全的赌注,就像边缘/填充一样。
那么动画是什么?通常情况下,如果您正在进行转换,则需要添加preserve-3d和perspective。至少来自父母/子女关系的船舶,您希望更好地管理您设置这些值的图层。
使用的一般规则I - 围绕我动画制作的容器:
perspective: 800px;
我正在制作动画:
backface-visiblity: hidden;
transform: translate3d(0,0,0);
transform-style: preserve-3d;
如果我仍然有闪烁问题,我通常会添加transform:translateZ(0);对于某些子元素我直接闪烁的动画。
它绝对是一个令人烦恼的问题,现在已经存在多年,不幸的是所有的技巧/提示都会老化并且会变得贬值。查看Google Chrome控制台以检查重新绘制并确保滚动时不会重新绘制整个页面。典型的标志着它的时间是关于什么是动画的内容的translateZ(0)。
祝你好运