【发布时间】:2014-01-14 00:05:27
【问题描述】:
根据 Angular 1.2 ngView 文档“进入和离开动画同时发生”,因此 ngView 更新过程的延时类似于
添加新内容 > 动画进入/离开 > 删除旧内容
有没有办法按顺序而不是同时进行——首先删除旧的,然后添加新的?
动画离开一个>删除旧内容>添加新内容>动画进入一个
我的意思是,我添加(输入)内容的 Ctrl 正在触发另一个事件/动画,而 ngView 的先前内容正在干扰它们。或者有没有办法在进入/laving动画完成后触发事件(从控制器的范围内)?
【问题讨论】:
-
你不能,动画开始时新旧内容都会在DOM树中。您可能需要寻找替代方法。但是,我认为您可以实现类似
add new content > animate leaving one > remove old content > animate entering one. -
好吧,我发现我只需要监听一个“animationend”事件,但是有没有一些默认的角度风格的方法可以在视图的输入内容中捕获它?我认为应该可以通过扩展 ngView 指令来实现,但是……
-
角度检测动画结束有一些方法。如果你使用 CSS 过渡,你可以在动画元素上监听
TransitionEnd事件(注意供应商前缀)。如果你使用 JS 动画,你可以在app.animation()模块中返回一个function。如果听起来像您想要的,我可以在下面详细发布答案。或者您可以针对您的新要求提出另一个问题。
标签: javascript angularjs animation