在许多情况下,我希望动画被同步执行。特别是当我想制作一系列顺序动画时。
我想到的唯一方法是在动画完成后设置一个标志为true,并等待这个标志。
解决方法
jQuery不能同步动画。
请记住,JavaScript在浏览器的UI线程上运行。
如果您进行同步动画,浏览器将冻结直到动画完成。
为什么你需要这样做?
您应该可以使用jQuery的回调参数,并在回调中继续您的方法代码,如下所示:
function doSomething() { var thingy = whatever; //Do things $('something').animate({ width: 70 },function() { //jQuery will call this method after the animation finishes. //You can continue your code here. //You can even access variables from the outer function thingy = thingy.fiddle; }); }
这被称为闭包。