我一直在使用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指令。
答案 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.
}