ngAnimate removeClass无法正常工作

时间:2014-03-19 22:38:46

标签: javascript angularjs css3 ng-animate

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

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

但是当我使用$ animate.removeClass时,它似乎只运行了elem.removeClass的等价物。没有动画类应用于删除(例如ng-animate,-remove,-remove-active)

这是plnkr复制问题。

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

我可以手动编写remove方法,但我更喜欢使用Animate指令。

1 个答案:

答案 0 :(得分:2)

您需要在元素类本身上定义过渡,而不是在要添加/动画的类上定义。

这样$animate将查看该类,并意识到它已应用过渡,并相应地设置动画。否则,它不会因添加/删除类而烦恼,因为它们会同时发生。

请参阅my fork

使用的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.
}