dojo / _base / fx是否支持承诺?

时间:2016-02-15 11:37:38

标签: javascript dojo

我需要在dom元素上的动画结束后执行一个方法。 目前我使用以下代码但没有成功。

我想知道dojo,支持动画的承诺,如果没有,我想知道我可以用哪种方式解决。

       fx.fadeOut({ node: 'target'}).play().then(function () {
            // do smt here
        }.bind(this));

2 个答案:

答案 0 :(得分:3)

是的,您可以使用FadeOut功能的注册回调。

返回annimation实例的fadeOutdojo/_base/fx函数) 提供了5个注册回调函数:

  • beforeBegin
  • onBegin
  • onEnd
  • onPlay
  • onAnimate(带参数)

在你的情况下,你需要在动画完成时做一些动作,所以在onEnd参数中传递FadOut函数,它应该如下所示:

fx.fadeOut({
    node:"target",
    onEnd: function(){
         // Some stuff at the end of the animation.
    }
}).play();

你也可以使用上面的回调作为args。

答案 1 :(得分:0)

我能够使用'dojo/on'解决此问题并订阅End上的fx.fadeOut()事件。我仍然非常有兴趣了解是否有更好的方法来获得相同的结果。

       var anim = fx.fadeOut({ node: 'target'}).play();
        on(anim, "End", function () {
            // dom smt here
        }.bind(this));