jquery – CSS3 transition/transform/translate3d会导致转换的第一个或最后一个“框架”(在iPad上)的严重闪烁,

所有,

我正在使用专门针对iPad的网络应用程序,而我正在使用CSS3转换来动画化div(从左到右移动)。

我的班级看起来像这样:

.mover {
    -webkit-transition:all 0.4s ease-in-out;
}

用户点击按钮时,我这样做:

var s = "translate3d(" + newPosition + "px,0)";
$('.mover ').css('-webkit-transform',s);

这非常有用,除非用户触发过渡的第一时间;第一次有一个非常明显的闪烁。

我意识到我不需要使用translate3d,因为我只是左右移动div,但据我所知,这迫使iPad使用GPU加速。 (它是否正确?)

提前谢谢了!

[UPDATE]

我对“闪烁”有些含糊不清。简而言之,我一直在尝试各种各样的CSS3转换(特别是在iPad上),并且始终如一 – 我注意到在转换开始或结束时闪烁着明显的闪烁。

换句话说,过渡本身非常流畅。然而,根据精确的设置,在转换开始或结束之前,会有明显的闪烁。

这是另一个例子:我有三张照片(PNG)叠在一起。

底部PNG的opacity = 1.0,顶部2的opacity = 0.0。使用-webkit关键帧,当照片淡入淡出时,我可以获得柔滑的平滑过渡。当动画结束时,底部照片以opacity = 1.0结束,opacity = 0.0的前两个。 (这应该是他们的最终状态)。

然而,就像动画结束一样,底部的照片闪烁。就像浏览器是强制重画/重绘屏幕一样,这需要几分之一秒。

破坏效果是不好的,渲染然后转换不能使用。 (在我的iMac上,几乎是不可思议的,在iPad上,这是不可错过的)。

解决方法

我在处理同样的问题,我在SO: iphone webkit css animations cause flicker上找到了解决方

就像添加一样简单

-webkit-backface-visibility: hidden;

可能的

-webkit-perspective: 1000;

对每个动画对象。它为我工作,希望这也有助于你

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...