如何强制jQuery动画同时运行?

6

我有一个包含动画的网页(JQuery Animation)。一个典型的动画序列可能包含三到四个独立的对象同时进行动画。我面临的问题是动画队列不可预测。有些动画会同时运行,而有些则不会。

我正在执行以下操作:

   setTimeout(function(){
       //animations
    }, delay);

在许多地方,人们只是试图将动画分组。即使使用这种方法,代码块中的某些动画仍然不能同时运行。
有没有办法强制动画同时运行?有没有一种方法来填充队列并同时执行这些动画? 是否有任何关于此事实际工作原理的全面文档?
编辑:示例代码 警告:代码混乱不堪
问题是通过查看代码,您如何知道哪些动画将同时运行?

6
请展示你的代码。 - SLaks
http://pastebin.com/Qns9xcuP 警告:代码很混乱。 - Niyaz
2个回答

8

这将同时运行(但如果对象上已经有正在进行的动画,则不会运行):

 $('.blabla .2').animate({opacity: 0.3, fontSize: 20}, 800);

如果你希望100%确定它立即动画化(注意队列:false):

$('.blabla .1').animate({fontSize: 20},{queue:false,duration:800});

您也可以这样做。(它仍将同时运行)
$('.blabla .1')
   .animate({fontSize: 20},{queue:false,duration:800})
   .animate({opacity: 0.4},{queue:false,duration:800});

这些代码按顺序运行。

$('.blabla .1').animate({opacity: 0.3}, 800).animate({fontSize: 20}, 800);

所以这样做
$('.blabla .2').animate({opacity: 0.3}, 800, function() {
    $('.blabla .3').animate({opacity: 0.3}, 800);
});

我希望这能回答你的问题。
抱歉我一直在编辑,因为我是新手。
需要翻译的内容已经涉及到HTML标签,所以请注意保留格式。

你可以在设置完动画之后使用 .dequeu() 立即启动它。 - Debianita

-1
使用step选项。您可以给它一个函数,在当前动画的每个步骤之后,它将执行该函数。因此,您可以在那里进行动画处理。文档链接

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接