2016-02-15 22 views
1

我需要在dom元素上的動畫結束後執行方法。 目前我使用下面的代碼沒有成功。dojo/_base/fx支持承諾嗎?

我想知道如果道場,支持承諾的動畫,如果沒有,我想知道我能以哪種方式工作。

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

回答

3

是的,你可以使用FadeOut功能的註冊回調。

fadeOutdojo/_base/fx函數返回一個annimation實例) 提供5個registred回調函數:

  • beforeBegin
  • onBegin
  • onEnd
  • onPlay
  • onAnimate(帶參數)

你的情況,你需要做的時候動畫完成一些動作已經過時了在FadOut參數的onEnd功能,它應該看起來像:

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

你也可以用上面的回調爲ARGS。

0

我能解決使用'dojo/on'和訂閱到End事件上fx.fadeOut()這個問題。我仍然很有興趣瞭解是否有更好的方法來達到同樣的結果。

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