我有一些看起来大致如此的代码。这是一个项目列表,其中一个被选中。
<div ng-repeat='item in items'
ng-click='selectItem(item)'
ng-class="{ selected: selectedItem == item }"
class="selected-item-animation">
...
</div>
我有selected
类的CSS(背景颜色),并添加了一个CSS过渡,认为我可以在选择项目时淡入和淡出背景颜色。但是它在Angular中不起作用,我认为这是因为每当有一个事件改变了所选项时,它就会为列表重新创建这些div。因此就CSS而言,这不是过渡。
所以我尝试了JS animation ...
.animation('.selected-item-animation', function($log) {
return {
enter: function(element, done) {
$log.log("enter", element.hasClass('selected'));
done();
return function(cancelled) { };
},
leave: function(element, done) {
$log.log('leave');
done();
},
addClass: function(element, className, done) {
$log.log("Added class! " + className);
},
};
但是enter
中唯一触发的东西。其他人从未被召唤过。那么,如果我从未收到取消选择的通知,我应该如何设置所选背景颜色的动画?