使用 AngularJS 和 ng-class,我试图在类在三种可能的状态之间变化时制作动画。我有一个可以处于三种状态的 div,由 div 上的类表示。状态定义如下:
<div class='myDiv'></div>
<div class='myDiv foo'></div>
<div class='myDiv bar'></div>
请注意,类foo
和bar
是排他的含义<div class="myDiv foo bar"></div>
是不可能的。我正在使用 ng-class 指令,如下所示:
<div class="myDiv" ng-class="{foo: first, bar: second}"></div>
控制器确保布尔值 first 和 second 可以同时为假但不为真。
我发现 ngAnimate 正确检测到状态 1<-->2 和 1<-->3 之间的 css 转换,但不能从 2<-->3 检测到。我尝试为.myDiv.foo
, .myDiv.bar
,.myDiv.foo-add-active
等类选择器添加 css 转换代码,但是 ngAnimate 没有检测到它们(意味着它没有添加 -add 和 -add-active 类)或者添加了动画类但是没有发生过渡。
这是一个演示问题的jsFiddle的链接。单击任一按钮,然后重新单击它会显示工作转换。单击任一按钮,然后单击另一个按钮显示缺少转换。
ngAnimate 是否会正确拾取一组神奇的转换?或者这是我不需要使用 ng-class 并编写自己的自定义指令的情况?