簡単なjQueryのslideUp/slideDownを使用して、Angular(バージョン1.3.2)のng-showで表示されるTwitterブートストラップパネル本体の開閉をアニメーション化しようとしています。
(最初は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>
何か不足していますか?