Я пытаюсь анимировать открытие/закрытие тела панели начальной загрузки Twitter, которое отображается с помощью ng-show в angular (версия 1.3.2), с помощью простого jQuery slideUp/slideDown.
(Сначала я пытался использовать переходы css, но не смог этого сделать из-за неизвестной высоты тела, а анимация максимальной высоты создавала проблемы при закрытии, поэтому я решил использовать JS)
Мне удалось создать анимацию, но она не работает при первом включении анимации. То есть первое тело показывается не анимировано, потом анимируется скрытие, а дальше все нормально (и шоу и скрытие анимируются).
Javascript-часть:
app.animation('.animate-panel-body-slide', function(){
return {
addClass : function(element, className, done) {
$(element).slideUp(400, done);
return function(isCancelled) {
if(isCancelled) {
$(element).stop();
}
}
},
removeClass : function(element, className, done) {
$(element).slideDown(400, done);
return function(isCancelled) {
if(isCancelled) {
$(element).stop();
}
}
}
}
});
HTML-часть:
<div class="panel panel-default">
<div class="panel-heading">
HEADING
</div>
<div class="panel-body animate-panel-body-slide" ng-show="isPanelOpen">
SOME HTML IN BODY...
</div>
</div>
Я что-то упускаю?