angularjs - 使用 AngularJS addClass/removeClass 的动画序列

标签 angularjs animate.css angularjs-animation

我正在尝试通过组合对 addClass/removeClass 的调用来制作动画序列。

动画结束后,调用“removeClass”方法来删除动画并开始新的动画。但由于某种原因,什么也没有发生。我想弄清楚为什么它不起作用?为什么类没有被删除?

$animate.addClass(element, 'fadeInDown').then(function() {
    $animate.removeClass(element, 'fadeInDown'); // why is it not working?
    $animate.addClass(element, 'fadeOutDown');
});

完整版本可以在这里找到

http://plnkr.co/edit/EFybfU4jcZoT3S7jCpM8?p=preview

最佳答案

你可以看看我在你的 plunker 中所做的这个 hack:http://plnkr.co/edit/iMMdPUrIz132PsCtB2Uq?p=preview

var myApp = angular.module('myApp', ['ngAnimate']);

myApp.controller('Controller', function($scope) {});

myApp.directive('animated', ['$animate', '$window', function($animate, $window) {
  return function(scope, element, attrs) {
      scope.animate = function() {
          $animate.addClass(element, 'fadeInDown').then(function() {
              $animate.removeClass(element, 'fadeInDown'); // why is it not working?

              setTimeout(function() {
                  scope.$apply(function() {
                      $animate.addClass(element, 'fadeOutDown');
                  });
              }, 0);

          });
      };
  };
}]);

我建议尝试纯CSS解决方案以使代码更清晰。您可以看看here例如

关于angularjs - 使用 AngularJS addClass/removeClass 的动画序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26264799/

相关文章:

javascript - 在 AngularJS 1.4.8 中观察元素高度的正确方法是什么?

javascript - AngularJS-附加全局焦点事件的方式

jquery - 缩放效果 (Animate.css) 在第二次点击或没有页面加载时不起作用

angularjs - 如何从 Controller 方法触发 angularjs 动画?

关键帧动画中左上角的CSS 3 float 文本

javascript - AngularJS .ng-enter 动画在第一次运行时不起作用

angularjs - 如何使用 TypeScript 在 Controller 中处理 Angular Promise

javascript - Angular : how to update value when range input modified via code

javascript - jQuery one() 处理程序执行了两次

javascript - 将 animate css 添加到 flexslider 标题