我如何拥有2个或更多不同持续时间但同时开始的动画
当我做某事时(例如)
$("#something").animate({opacity: 1}, 2500).animate({left: 1000}, 10000);
#something
仅在不透明度动画完成后才开始移动
答案 0 :(得分:3)
jquery文档解释了如何执行此操作:http://docs.jquery.com/Release:jQuery_1.2/Effects#Simultaneous_Animations
我认为这会解决问题,尽管你可能只需要一个动画的队列:false属性。
$("#something")
.animate({opacity: 1}, {queue: false, duration: 2500})
.animate({left: 1000}, {queue: false, duration: 10000});
答案 1 :(得分:2)
根据Api Docs,您可以设置名为queue=false
的属性以获得所需的效果。所以要修改代码:
$("#something")
.animate({opacity: 1, queue: false}, 2500)
.animate({left: 1000 +"px", queue: false}, 10000);
我希望这可以解决问题:)
PS。其中一个动画不应该具有queue=false
属性,因此您可以将其他动画链接到该对象。在这种情况下,您可能不会跳过最后一个动画上的queue=false
,因此链接动画仅在最长动画结束后才开始。例如,如果您还想在当前动画后设置高度动画:
$("#something")
.animate({opacity: 1, queue: false}, 2500)
.animate({left: 1000 +"px"}, 10000)
.animate({height: 500 +"px"}, 1000);
这样height
只会在left
动画结束后制作动画。
答案 2 :(得分:0)
抱歉误读了你的问题
$("#something").animate({opacity: 1,left:1000}, 2500)