替代“-webkit-backface-visibility:hidden”以停止闪烁

时间:2014-11-24 18:14:23

标签: html css css3 css-transitions

我一直在使用-webkit-backface-visibility: hidden;来阻止css过渡闪烁,但结果我的position: fixed;不再在FF或Safari中修复(请参阅小提琴:http://jsfiddle.net/liguha/ssqksnv0/

任何替代方案?最好没有javascript来解决这个问题。

1 个答案:

答案 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)。

祝你好运