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

时间:2010-07-19 15:32:26

标签: javascript jquery jquery-ui animation

我的网页上都有动画(JQuery Animation)。典型的动画序列可以包含三个或四个同时独立动画的对象。我面临的问题是动画的排队是不可预测的。有些动画同时运行,而有些动画则没有。

我正在做类似

的事情
   setTimeout(function(){
       //animations
    }, delay);

在许多地方只是为了尝试对动画进行分组。即使使用它,代码块中的一些动画也不会同时运行。

有没有办法强制动画同时运行?有没有办法用动画填充队列,然后同时执行这些? 有没有关于这件事实际起作用的全面文件?

编辑:Sample code警告:代码很乱

问题在于查看代码,您如何知道哪些动画将同时运行?

2 个答案:

答案 0 :(得分: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);
});

我希望能回答你的问题。

对不起所有的编辑,我是新来的。

答案 1 :(得分:-1)

使用step选项。你给它一个函数,在当前动画的每一步之后,它将执行该函数。因此你可以在那里制作动画。 Link to docs