2013-04-24 97 views
1

我在函数内部有一个动画。我如何编码以便在离开函数之前动画应该先完成?jquery在离开函数之前等待动画完成

考虑下面的代码:

ShowBanner.prototype.basicRotate = function (pos, callback) { 
    var self = this; 
    self.animation = true; 

    this.bigbannerScroll.animate({ 
     left: pos 
    }, this.settings.rotateSpeed, function() { 
     self.animation = false; 
     if (callback) callback(); 
     console.log('animation done'); 
     return false; 
    }); 

    console.log('function done'); 
} 

基于代码的console.log('function done')console.log('animation done')之前首先调用。有没有办法让第一个日志先被调用,说明离开函数之前动画已经完成了?

+0

它不会这样工作,因为animate是一个异步函数,您需要使用回调机制 – 2013-04-24 08:52:59

回答

0

不,因为animate是一个异步函数,它将启动动画并返回。

如果您需要在动画完成后执行某些操作,那么您需要使用完整的回调。

0

animate是异步的,所以我不认为有一种方法可以在动画发生时暂停。最好的选择就是坚持使用complete回调函数。

另一种替代方法是设置超时(使用setTimeout)来定义在指定时间后运行的另一个函数。但是,我看不到这样做的好处。

相关问题