ng-click
とng-if
のディレクティブが同じdivにあります。ng-if = 'false'がDIVを隠しています
click
変数は最初にfalse
に設定されているため、ボックス DIVは表示されません。 click
をtrue
に設定するか、ng-if
ディレクティブに!click
を使用すると、ボックス DIVが表示されますが、クリックするとアニメーションが表示されません。
ボックスからng-click
を削除し、それを別のDIVまたはボタンに追加してトグルを行うと、アニメーションが機能します。ただし、ボックス DIVは最初は隠されていて、アニメーションの実行後も消えます。
HTML
<div ng-app="animationApp" ng-controller="c1">
<div ng-click="click=!click" ng-if="click" class="box"></div>
</div>
JS
angular.module('animationApp', ['ngAnimate'])
.controller('c1', function ($scope, $animate, $timeout) {
$scope.click = false;
})
;
CSS
.box {
width: 40px;
height: 40px;
background-color: indianred;
}
.box.ng-enter {
-webkit-transition: all 0.35s ease;
transition: all 0.35s ease;
transform: rotateZ(0deg);
}
.box.ng-enter-active {
transform: rotateZ(-180deg);
}
.box.ng-leave {
-webkit-transition: all 0.35s ease;
transition: all 0.35s ease;
transform: rotateZ(-180deg);
}
.box.ng-leave-active {
transform: rotateZ(0deg);
}
デモ https://jsfiddle.net/ae8kwzxg/93/
については、ちょうどng-に変更する方法if = "!click"? – Ben