1

我在函数中有一个动画。我如何编写代码以使动画在离开函数之前首先完成?

考虑下面的代码:

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'). 有没有办法先调用第一个日志,说明动画在离开函数之前已经完成?

4

2 回答 2

0

animate是异步的,所以我认为没有办法让它在动画发生时暂停。最好的办法是坚持使用该complete回调函数。

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

于 2013-04-24T08:54:07.670 回答
0

不,因为 animate 是一个异步函数,它会启动动画然后返回。

如果你需要在动画完成后做一些事情,那么你需要使用完成回调。

于 2013-04-24T08:54:18.213 回答