所有,CSS3过渡/变换/ translate3d导致对第一或最后的过渡“帧”闪烁严重(在iPad)
我正在专为iPad一个web应用程序,并且我使用CSS3转换为div动画(从左向右移动它)。
我的类看起来是这样的:
.mover {
-webkit-transition:all 0.4s ease-in-out;
}
当用户点击一个按钮,我这样做:
var s = "translate3d(" + newPosition + "px, 0, 0)";
$('.mover ').css('-webkit-transform', s);
这个伟大的工程EXCEPT的FIRST一次用户触发过渡;第一次,有一个非常明显的闪烁。
我意识到我不需要使用translate3d,因为我只是左右移动div,但据我所知,这迫使iPad使用GPU加速。 (这是正确的吗?)
非常感谢提前!
[更新]
我却有点含糊有关 “忽悠”。简而言之 - 我一直在尝试各种各样的CSS3转换(特别是在iPad上),并且始终如一 - 我注意到在转换的开始或结束明显闪烁。
换句话说,转换本身非常平滑。但是,根据精确的设置,在转换开始或结束之前会有明显的闪烁。
下面是另一个例子:我有三张照片(PNG)堆叠在一起。
底部的PNG具有不透明度= 1.0,顶部2具有不透明度= 0.0。使用-webkit关键帧,当照片淡入淡出时,我可以获得如丝般的平滑过渡。当动画结束时,底部照片结束于不透明度= 1.0,不透明度= 0.0的前两个。 (这应该是他们的最终状态)。
但是,就像动画结束一样,底部照片闪烁。就好像浏览器正在强制重画/重画屏幕,而这需要几分之一秒。
糟糕的效果,并呈现然后转换不可用。 (在我的iMac上,它几乎是,但不是很明显,在iPad上,这是不容错过的)。
可以确认这是至少在Safari 6.0.5中的错误 – lol 2013-11-27 13:49:00