Animações AngularJS
AngularJS fornece transições animadas, com ajuda do CSS.
O que é uma Animação?
Uma animação é quando a transformação de um elemento HTML lhe dá uma ilusão de movimento.
Exemplo:
Marque a caixa de seleção para ocultar o DIV:
<body ng-app="ngAnimate">
Hide the DIV: <input type="checkbox" ng-model="myCheck">
<div ng-hide="myCheck"></div>
</body>
Os aplicativos não devem ser preenchidos com animações, mas algumas animações podem tornar o aplicativo mais fácil de entender.
O que eu preciso?
Para deixar seus aplicativos prontos para animações, você deve incluir a biblioteca AngularJS Animate:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-animate.js"></script>
Então você deve consultar o ngAnimate
módulo em sua aplicação:
<body ng-app="ngAnimate">
Ou se sua aplicação tiver um nome, adicione ngAnimate
como dependência no módulo da sua aplicação:
Exemplo
<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>
O que o ngAnimate faz?
O módulo ngAnimate adiciona e remove classes.
O módulo ngAnimate não anima seus elementos HTML, mas quando o ngAnimate percebe certos eventos, como ocultar ou mostrar um elemento HTML, o elemento obtém algumas classes pré-definidas que podem ser usadas para fazer animações.
As diretivas em AngularJS que adicionam/removem classes são:
ng-show
ng-hide
ng-class
ng-view
ng-include
ng-repeat
ng-if
ng-switch
As diretivas ng-show
e adicionam ou removem um valor de classe.ng-hide
ng-hide
As outras diretivas adicionam um ng-enter
valor de classe quando entram no DOM e um ng-leave
atributo quando são removidas do DOM.
A ng-repeat
diretiva também adiciona um ng-move
valor de classe quando o elemento HTML muda de posição.
Além disso, durante a animação, o elemento HTML terá um conjunto de valores de classe, que serão removidos quando a animação terminar. Exemplo: a
ng-hide
diretiva adicionará estes valores de classe:
ng-animate
ng-hide-animate
ng-hide-add
(se o elemento estiver oculto)ng-hide-remove
(se o elemento será mostrado)ng-hide-add-active
(se o elemento estiver oculto)ng-hide-remove-active
(se o elemento será mostrado)
Animações usando CSS
Podemos usar transições CSS ou animações CSS para animar elementos HTML. Este tutorial irá mostrar-lhe ambos.
Para saber mais sobre CSS Animation, estude nosso CSS Transition Tutorial e nosso CSS Animation Tutorial .
Transições CSS
As transições CSS permitem que você altere os valores das propriedades CSS sem problemas, de um valor para outro, durante um determinado período:
Exemplo:
Quando o elemento DIV obtém a .ng-hide
classe, a transição levará 0,5 segundos e a altura mudará suavemente de 100px para 0:
<style>
div {
transition: all linear 0.5s;
background-color: lightblue;
height: 100px;
}
.ng-hide
{
height: 0;
}
</style>
Animações CSS
CSS Animations permite que você altere os valores das propriedades CSS sem problemas, de um valor para outro, durante um determinado período:
Exemplo:
Quando o elemento DIV obtiver a .ng-hide
classe, a myChange
animação será executada, o que alterará suavemente a altura de 100px para 0:
<style>
@keyframes myChange {
from {
height: 100px;
} to {
height: 0;
}
}
div {
height: 100px;
background-color: lightblue;
}
div.ng-hide {
animation: 0.5s myChange;
}
</style>