Простой вопрос, но у меня проблемы с реализацией. Если у меня есть следующая настройка DOM:
<h1 class="fade" ng-repeat="child in parent.children" ng-show="parent.activeChild== child ">@{{ child.title }}</h1>
Когда свойство activeChild
модели parent
изменяется, как я могу погасить текущий активный дочерний элемент, до, модель изменяет, а затем исчезает в новом активном дочернем после изменения.
Я работаю примерно так: только с помощью CSS-переходов:
.fade.ng-hide-add {
transition:opacity 1s ease;
}
.fade.ng-hide-remove {
transition:opacity 1s ease 1s;
}
.fade.ng-hide-add {
opacity:1;
&.ng-hide-add-active {
opacity:0;
}
}
.fade.ng-hide-remove {
opacity:0;
&.ng-hide-remove-active {
opacity:1;
}
}
Но это заканчивается тем, что эта проблема (Plunkr):
По сути, я хочу связать свою анимацию. Я пробовал читать ng-animate docs, но у меня возникли проблемы с синтаксисом, необходимым для доставки эффекта, который я хочу.
Я видел, как документы Angular имеют что-то вроде этого:
app.animation('.fade', [function() {
return {
addClass: function(element, className, doneFn) {
},
removeClass: function(element, className, doneFn) {
}
};
}]);
- Что такое
className
? Является ли это классом, который я хочу применить, когда он исчезает? Класс, который я ожидаю? - Что означает
doneFn
? Я предполагаю, что это функция, которая запускается после завершения анимации? Что там происходит? - Что мне делать в
addClass
иremoveClass
, тогда, если у меня уже естьdoneFn
?
Цель
Я хотел бы сгенерировать рабочую анимацию непосредственно с помощью модуля Angular ngAnimate с помощью CSS или JS. Как я могу достичь этого?