【发布时间】:2015-01-21 23:37:37
【问题描述】:
我正在我的 Angular 应用程序中试用 Dan Eden 的 animation.css。
我有一个自定义指令,它使用 Angular 的 $animate 服务将 CSS 类添加到我的元素。
例子:
CSS
.bounce-add.bounce-add-active {
-webkit-animation: bounceOutLeft 2.5s;
animation: bounceOutLeft 2.5s;
}
HTML:
<div my-directive="action"/>
JS
myMod.directive("myDirective", function ($animate) {
var linker = function (scope, element, attrs) {
scope.$watch('myDirective', function (value, oldValue) {
// if( value == doBounce )
$animate.addClass(element, 'bounce').then(function () {
});
}
return {
link: linker,
scope: {
'myDirective': '=',
},
};
});
这里会出现弹跳左侧动画,但我的元素随后会返回到它的原始位置。
我尝试了动画填充模式:没有运气的转发。我还尝试添加一个额外的 CSS 类,因为 Angular 在动画完成后删除了该类,所以我的 html 中有 .bounce.bounce-add.bounce-add-active 和 class="bounce" 而不是 .bounce-add.bounce-add-active。
在使用包含关键帧动画的 CSS 样式(使用 $animate 服务的 addClass)后,有没有办法将元素保持在最终位置?
【问题讨论】:
-
AngularJS 版本?我进行了测试,
animation-fill-mode: forwards;工作正常。但是你真的希望你的元素保持在它的最终状态吗?它会向左移动 2000 像素。您希望它在外面可见还是只想隐藏它? -
Angular 版本是 1.3。是的,我希望它留在那里,然后我将通过回调从该点执行另一个动画。
-
我已经编辑了我的问题以包含一个 Plunker 示例。
标签: angularjs animation addclass css-animations