同步jQuery背景和元素动画

时间:2012-08-26 15:02:00

标签: jquery css jquery-animate background-position

我在下面的小提琴中说明了我的问题; http://jsfiddle.net/6CTMs/

wrapper的背景是中间有一个白洞的图像。然后,block元素覆盖此洞。

现在我想为背景和块向上移动设置动画。我同时为背景位置(通过包含的背景位置动画插件)和top元素的block属性设置动画。

但是,至少在Win7上的Chrome 21.0.1180.79上,这两个动画并不完全同步。似乎每隔一个动画帧,一个白色条带(在下面显示一个像素高的切片)显示在底部,而其他每个框架都不显示。

我该如何避免这种情况?

在子元素中包含背景图像,并且仅在我的情况下仅为其顶部属性设置动画。我也不能使元素像素高一点或任何“黑客” - 尺寸和动画需要精确。

作为旁注,我认为这个问题可能与an earlier question of mine有关,而http://jsfiddle.net/3r26H/1/从未完全解决过。

编辑:我在这里分叉了小提琴; {{3}}似乎工作但看起来它在动画结束时会关闭一个像素。我也不知道这是否会在非Webkit浏览器中产生新问题。这个解决方案有多洁净?

1 个答案:

答案 0 :(得分:3)

根据这个帖子:JQuery synchronous animation在JQuery中同步两个动画是不可能的。您可以通过“手动”动画整个事物,使用requestAnimationFrame并在每个帧进行正确的计算,以便两个元素同步。