AngularJS アニメーション
AngularJS はアニメーション効果を提供し、CSS と組み合わせて使用できます。
AngularJS でアニメーションを使用するには、angular-animate.min.js ライブラリを導入する必要があります。
<script src="../libs/angular.js/1.4.6/angular-animate.min.js.html"></script>
さらに、アプリケーションでモジュール ngAnimate を使用する必要があります:
<body ng-app="ngAnimate">
アニメーションとは?
アニメーションとは、HTML 要素を変化させることによって生じる動的な変化効果です。
例
チェックボックスをオンにして DIV を非表示にする:
DIV を非表示:<input type="checkbox" ng-model="myCheck">
<div ng-hide="myCheck"></div>
</body>
試してみる »
![]() |
アプリケーション内でアニメーションを使用しすぎるのは良くありませんが、適切に使用することでページの豊かさが増し、ユーザーが理解しやすくなります。 |
|---|
アプリケーションにすでにアプリケーション名を設定している場合は、ngAnimate を直接モジュールに追加できます:
例
<h1>DIV を非表示:<input type="checkbox" ng-model="myCheck"></h1>
<div ng-hide="myCheck"></div>
<script>
試してみる »
ngAnimate は何をするのか?
ngAnimate モジュールは class を追加または削除できます。
ngAnimate モジュールは HTML 要素にアニメーションを発生させることはできませんが、ngAnimate はイベントを監視します。たとえば、HTML 要素の非表示や表示などのイベントが発生すると、ngAnimate は事前定義された class を使用して HTML 要素のアニメーションを設定します。
AngularJS が class を追加/削除するディレクティブ:
ng-showng-hideng-classng-viewng-includeng-repeatng-ifng-switch
ng-showとng-hideディレクティブは、追加または削除するために使用されます。ng-hideclass の値。
他のディレクティブは、DOM に入るときに追加しますng-enterクラス、DOM から削除されるときに追加しますng-leave属性。
HTML 要素の位置が変更されるとき、ng-repeatディレクティブも同様に追加できますng-moveクラス。
さらに、アニメーションが完了すると、HTML 要素のクラスセットは削除されます。例:ng-hideディレクティブは以下のクラスを追加します:
ng-animateng-hide-animateng-hide-add(要素が非表示になる場合)ng-hide-remove(要素が表示される場合)ng-hide-add-active(要素が非表示になる場合)ng-hide-remove-active(要素が表示される場合)
CSS アニメーションを使用する
CSS トランジション(遷移)または CSS アニメーションを使用して HTML 要素にアニメーション効果を持たせることができます。この部分については、以下のチュートリアルを参照してください:CSS トランジションチュートリアル, CSS アニメーションチュートリアル。
CSS トランジション
CSS トランジションを使用すると、ある CSS プロパティの値を別の値に滑らかに変更できます:
例
DIV 要素に設定されている.ng-hideclass のとき、トランジションには 0.5 秒かかり、高さは 100px から 0 に変化します:
div {
transition: all linear 0.5s;
background-color: lightblue;
height: 100px;
}
.ng-hide {
height: 0;
}
</style>
試してみる »
CSS アニメーション
CSS アニメーションを使用すると、CSS プロパティの値を滑らかに変更できます:
例
DIV 要素に設定されている.ng-hideclass のとき、myChangeアニメーションが実行され、高さが 100px から 0 に滑らかに変化します:
@keyframes myChange {
from {
height: 100px;
} to {
height: 0;
}
}
div {
height: 100px;
background-color: lightblue;
}
div.ng-hide {
animation: 0.5s myChange;
}
</style>
試してみる »
