【发布时间】:2010-06-17 19:32:13
【问题描述】:
我正在使用 jQuery 中的 animate() 循环调整几个 div 的大小。同时,我正在移动(左侧属性,根本不调整大小)它们所在的 div。
问题是,尽管它们具有相同的持续时间,但调整大小动画调用在移动调用之前完成。它们不同步。有什么方法可以创建选择器列表及其属性,然后运行唯一的 animate() 调用?
或者,有没有其他方法可以让多个动画同时发生?
我看到有一个名为 step 的属性,每次动画循环发生时都会发生,但同样,每个 animate() 调用都有自己的 step 调用。
提前致谢:)
这里是一种需要的伪代码示例:
for(...){
$(target_x).stop().animate({property_a:random_value, property_b:random_value}, {duration:300});
}
$(container).stop().animate({property_z:random_value}, {duration:300});
【问题讨论】:
-
你能显示你的代码吗?你如何调整和移动元素?我有点困惑,因为 animate 能够立即更改多个属性。也许您必须重新阅读文档:api.jquery.com/animate
-
你能把代码贴出来让我们看看它是否有任何问题吗?如果它们的持续时间相同,我看不出它们为什么会明显不同步。
-
我刚刚发布了一些伪代码,以便您了解。感谢您的帮助:)
-
尝试将所有这些函数分别包装在
setTimeout(function() { $(target).animate(...) }, 0)中以模拟并行执行。 -
@stagas 但容器的动画在循环之外。这就是为什么我要求采用不同的方式将它们全部分组并确保它们同时发生。
标签: jquery jquery-selectors jquery-animate