AngularJS 提供了動畫效果,可以配合 CSS 使用。
AngularJS 使用動畫需要引入 angular-animate.min.js 庫。
還需在應用中使用模型 ngAnimate:
動畫是通過改變 HTML 元素産生的動态變化效果。
勾選複選框隐藏 DIV:
<body ng-app="ngAnimate">
隐藏 DIV: <input type="checkbox" ng-model="myCheck">
<div ng-hide="myCheck"></div>
</body>

應用中動畫不宜太多,但合适的使用動畫可以增加頁面的豐富性,也可以更易讓使用者了解。
如果我們應用已經設定了應用名,可以把 ngAnimate 直接添加在模型中:
<body ng-app="myApp">
<h1>隐藏 DIV: <input type="checkbox" ng-model="myCheck"></h1>
<script>
var app =
angular.module('myApp', ['ngAnimate']);
</script>
ngAnimate 模型可以添加或移除 class 。
ngAnimate 模型并不能使 HTML 元素産生動畫,但是 ngAnimate 會監測事件,類似隐藏顯示 HTML 元素 ,如果事件發生 ngAnimate 就會使用預定義的 class 來設定 HTML 元素的動畫。
AngularJS 添加/移除 class 的指令:
<code>ng-show</code>
<code>ng-hide</code>
<code>ng-class</code>
<code>ng-view</code>
<code>ng-include</code>
<code>ng-repeat</code>
<code>ng-if</code>
<code>ng-switch</code>
<code>ng-show</code> 和 <code>ng-hide</code> 指令用于添加或移除 <code>ng-hide</code> class 的值。
其他指令會在進入 DOM 會添加 <code>ng-enter</code> 類,移除 DOM 會添加 <code>ng-leave</code> 屬性。
當 HTML 元素位置改變時,<code>ng-repeat</code> 指令同樣可以添加 <code>ng-move</code> 類 。
此外, 在動畫完成後,HTML 元素的類集合将被移除。例如:
<code>ng-hide</code> 指令會添加以下類:
<code>ng-animate</code>
<code>ng-hide-animate</code>
<code>ng-hide-add</code> (如果元素将被隐藏)
<code>ng-hide-remove</code> (如果元素将顯示)
<code>ng-hide-add-active</code> (如果元素将隐藏)
<code>ng-hide-remove-active</code> (如果元素将顯示)
我們可以使用 CSS transition(過渡) 或 CSS 動畫讓 HTML 元素産生動畫效果,該部分内容你可以參閱我們的
CSS 過渡教程,
CSS 動畫教程。
CSS 過渡可以讓我們平滑的将一個 CSS 屬性值修改為另外一個:
在 DIV 元素設定了 <code>.ng-hide</code> 類時,過渡需要花費 0.5 秒,高度從 100px 變為 0:
<style>
div {
transition: all linear 0.5s;
background-color: lightblue;
height: 100px;
}
.ng-hide
{
height: 0;
</style>
CSS 動畫允許你平滑的修改 CSS 屬性值:
在 DIV 元素設定了 <code>.ng-hide</code> 類時, <code>myChange</code>
動畫将執行,它會平滑的将高度從 100px 變為 0:
@keyframes myChange {
from {
height: 100px;
} to {
height: 0;
}
background-color: lightblue;
div.ng-hide {
animation: 0.5s myChange;