【问题标题】:How to force jQuery animations to run simultaneously?如何强制 jQuery 动画同时运行?
【发布时间】:2010-07-20 00:52:11
【问题描述】:

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

我正在做类似的事情

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

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

有没有办法强制动画同时运行?有没有办法用动画填充队列然后同时执行这些? 有没有关于这个东西实际工作原理的综合文档?

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

问题是看代码,你怎么知道哪些动画会同时运行?

【问题讨论】:

标签: javascript jquery jquery-ui animation


【解决方案1】:

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

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

如果你想 100% 确定它是动画的(注意 queue: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);
});

我希望这能回答你的问题。

抱歉,我是新来的。

【讨论】:

  • 您也可以在动画设置完成后使用 .dequeu() 立即启动它
【解决方案2】:

使用step 选项。你给它一个函数,在当前动画的每一步之后,它都会执行那个函数。因此,您可以在那里设置动画。 Link to docs.

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 2012-10-16
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2020-09-12
    • 1970-01-01
    相关资源
    最近更新 更多