我的网页上都有动画(JQuery Animation)。典型的动画序列可以包含三个或四个同时独立动画的对象。我面临的问题是动画的排队是不可预测的。有些动画同时运行,而有些动画则没有。
我正在做类似
的事情 setTimeout(function(){
//animations
}, delay);
在许多地方只是为了尝试对动画进行分组。即使使用它,代码块中的一些动画也不会同时运行。
有没有办法强制动画同时运行?有没有办法用动画填充队列,然后同时执行这些? 有没有关于这件事实际起作用的全面文件?
编辑:Sample code警告:代码很乱
问题在于查看代码,您如何知道哪些动画将同时运行?
答案 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