避免绝对定位元素跳转到chrome for chrome中的动画

时间:2014-03-24 18:57:36

标签: css css-animations absolute

我只是建立了这个网站:http://rcmm.minnie.mico.dk/

在头版我有一个幻灯片(糟糕的用户体验 - 我知道)。如果单击右下角的一个小方块图标,滑块将显示动画。

这很好用,除了用于mac的chrome。每次滑块动画时,所有绝对定位的元素都会进行微小的像素跳转。然而,滑块上的动画使用transform:translate()来制作动画。 js只是交换类 - 没有实际的动画 - 这些都是由css处理的。

有谁知道这是为什么,如果有可能解决这个问题?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

只需将-webkit-backface-visibility: hidden;添加到<body>即可停止跳转。

任何时候使用CSS变换时都会遇到小问题,backface-visibility: hidden会解决问题。它通常与浏览器处理硬件加速的方式有关。

来自CSS3 Animations: the Hiccups and Bugs You'll Want to Avoid

  

这种现象背后的原因尚不清楚,但修复非常简单。只需添加-webkit-backface-visibility:hidden;规则到CSS应该有助于防止问题。将它应用于元素的容器,如下所示:

     

.container { -webkit-backface-visibility: hidden; }

     

归结为另一个硬件加速问题 - 使用此属性只需将加速度加速即可。你也可以使用-webkit-perspective:1000;或其他3D属性。