我需要在dom元素上的动画结束后执行一个方法。 目前我使用以下代码但没有成功。
我想知道dojo,支持动画的承诺,如果没有,我想知道我可以用哪种方式解决。
fx.fadeOut({ node: 'target'}).play().then(function () {
// do smt here
}.bind(this));
答案 0 :(得分:3)
是的,您可以使用FadeOut
功能的注册回调。
返回annimation实例的fadeOut
(dojo/_base/fx
函数)
提供了5个注册回调函数:
在你的情况下,你需要在动画完成时做一些动作,所以在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));