Javascript nAnimate removeClass工作不正常

Javascript nAnimate removeClass工作不正常,javascript,angularjs,css,ng-animate,Javascript,Angularjs,Css,Ng Animate,我一直在使用AngularJS 1.2.14的ngAnimate模块 当我使用$animate.addClass时,它可以正确地添加ng animate,-add,-add active 然而,当我使用$animate.removeClass时,它似乎只是运行与elem.removeClass等效的程序。没有动画类应用于移除(例如ng animate、-remove、-remove active) 这是plnkr复制的问题 我可以手动编写删除方法的代码,但我更喜欢使用Animate指令。您需要

我一直在使用AngularJS 1.2.14的ngAnimate模块

当我使用$animate.addClass时,它可以正确地添加ng animate,-add,-add active

然而,当我使用$animate.removeClass时,它似乎只是运行与elem.removeClass等效的程序。没有动画类应用于移除(例如ng animate、-remove、-remove active)

这是plnkr复制的问题


我可以手动编写删除方法的代码,但我更喜欢使用Animate指令。

您需要在元素的类本身上定义转换,而不是在正在添加/设置动画的类上定义转换

这样,
$animate
将查看该类并意识到它已应用了一个转换,并相应地设置动画。否则,它就不需要添加/删除类,因为这将同时发生

使用的CSS类

.classname {
  // The class of the element you want to animate
  // Its default state (invisible).

}

.classname.visible-class-add {
  // Any preparatory work you need to do before animating
  // This is the ideal place to put your transition property.
}

.classname.visible-class-add-active{
  // during-animation class (often none needed)
}

.classname.visible-class-remove {
  // Pre- remove class: possibly the same as .visible-class-add
}

.classname.visible-class-remove-active {
  // any during-animation style (often none required)
}

.classname.visible-class {
  // The visible state.
}

这个解决方案有效。但是,它似乎没有遵循文档风格。这显示ng animate类同时应用于add和remove方法。如果检查卡,则会同时显示
ng animate
类。要使其变慢,请更改转换持续时间,这样会更容易看到。虽然你的CSS很奇怪,但我会编辑以显示你应该拥有的类是否有理由附加转换代码
ng animate
不起作用?如下所示:
.ng animate{-webkit transition:-webkit transform 0.3s ease,opacity 0.3s ease;transition:transform 0.3s ease,opacity 0.3s ease;}
是的-angular不在
ng animate
中查找css动画。该类用于javascript动画。同样地,如果你的转换代码在那里,那么angular认为你还没有为那个元素定义任何转换。是的,我一直在使用它,它是一个很好的资源。我只是玩了一会儿,得出了和你上面键入的相同的结论:-)谢谢!