Animace AngularJS
AngularJS poskytuje animované přechody s pomocí CSS.
Co je to animace?
Animace je, když transformace prvku HTML poskytuje iluzi pohybu.
Příklad:
Zaškrtnutím políčka skryjete DIV:
<body ng-app="ngAnimate">
Hide the DIV: <input type="checkbox" ng-model="myCheck">
<div ng-hide="myCheck"></div>
</body>
Aplikace by neměly být plné animací, ale některé animace mohou aplikaci usnadnit pochopení.
Co potřebuji?
Aby byly vaše aplikace připraveny na animace, musíte zahrnout knihovnu AngularJS Animate:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-animate.js"></script>
Poté se musíte obrátit na ngAnimate
modul ve vaší aplikaci:
<body ng-app="ngAnimate">
Nebo pokud má vaše aplikace název, přidejte ngAnimate
jako závislost v modulu aplikace:
Příklad
<body ng-app="myApp">
<h1>Hide the DIV: <input type="checkbox" ng-model="myCheck"></h1>
<div ng-hide="myCheck"></div>
<script>
var app =
angular.module('myApp', ['ngAnimate']);
</script>
Co dělá ngAnimate?
Modul ngAnimate přidává a odebírá třídy.
Modul ngAnimate neanimuje vaše HTML elementy, ale když si ngAnimate všimne určitých událostí, jako je skrytí nebo zobrazení elementu HTML, element získá nějaké předdefinované třídy, které lze použít k vytváření animací.
Direktivy v AngularJS, které přidávají/odebírají třídy, jsou:
ng-show
ng-hide
ng-class
ng-view
ng-include
ng-repeat
ng-if
ng-switch
Direktivy ng-show
and ng-hide
přidávají nebo odebírají ng-hide
hodnotu třídy.
Ostatní direktivy přidávají ng-enter
hodnotu třídy, když vstupují do DOM, a ng-leave
atribut, když jsou z DOM odstraněny.
Direktiva ng-repeat
také přidá ng-move
hodnotu třídy, když prvek HTML změní pozici.
Kromě toho bude mít prvek HTML během animace sadu hodnot tříd, které budou po dokončení animace odstraněny. Příklad:
ng-hide
direktiva přidá tyto hodnoty třídy:
ng-animate
ng-hide-animate
ng-hide-add
(pokud bude prvek skrytý)ng-hide-remove
(pokud bude prvek zobrazen)ng-hide-add-active
(pokud bude prvek skrytý)ng-hide-remove-active
(pokud bude prvek zobrazen)
Animace pomocí CSS
K animaci prvků HTML můžeme použít přechody CSS nebo animace CSS. Tento tutoriál vám ukáže obojí.
Chcete-li se dozvědět více o CSS animaci, prostudujte si náš kurz CSS Transition Tutorial a náš CSS Animation Tutorial .
Přechody CSS
Přechody CSS umožňují plynule měnit hodnoty vlastností CSS, z jedné hodnoty na druhou, po danou dobu:
Příklad:
Když prvek DIV získá .ng-hide
třídu, přechod bude trvat 0,5 sekundy a výška se plynule změní ze 100 pixelů na 0:
<style>
div {
transition: all linear 0.5s;
background-color: lightblue;
height: 100px;
}
.ng-hide
{
height: 0;
}
</style>
CSS animace
Animace CSS vám umožňují plynule měnit hodnoty vlastností CSS, z jedné hodnoty na druhou, po danou dobu:
Příklad:
Když prvek DIV získá .ng-hide
třídu, myChange
spustí se animace, která plynule změní výšku ze 100 pixelů na 0:
<style>
@keyframes myChange {
from {
height: 100px;
} to {
height: 0;
}
}
div {
height: 100px;
background-color: lightblue;
}
div.ng-hide {
animation: 0.5s myChange;
}
</style>