Animaciones AngularJS
AngularJS proporciona transiciones animadas, con ayuda de CSS.
¿Qué es una Animación?
Una animación es cuando la transformación de un elemento HTML te da una ilusión de movimiento.
Ejemplo:
Marque la casilla de verificación para ocultar el DIV:
<body ng-app="ngAnimate">
Hide the DIV: <input type="checkbox" ng-model="myCheck">
<div ng-hide="myCheck"></div>
</body>
Las aplicaciones no deben estar llenas de animaciones, pero algunas animaciones pueden hacer que la aplicación sea más fácil de entender.
¿Qué necesito?
Para que sus aplicaciones estén listas para las animaciones, debe incluir la biblioteca AngularJS Animate:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-animate.js"></script>
Luego debe consultar el ngAnimate
módulo en su aplicación:
<body ng-app="ngAnimate">
O si su aplicación tiene un nombre, agréguelo ngAnimate
como dependencia en el módulo de su aplicación:
Ejemplo
<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>
¿Qué hace ngAnimate?
El módulo ngAnimate agrega y elimina clases.
El módulo ngAnimate no anima sus elementos HTML, pero cuando ngAnimate nota ciertos eventos, como ocultar o mostrar un elemento HTML, el elemento obtiene algunas clases predefinidas que se pueden usar para hacer animaciones.
Las directivas en AngularJS que agregan/eliminan clases son:
ng-show
ng-hide
ng-class
ng-view
ng-include
ng-repeat
ng-if
ng-switch
Las directivas ng-show
y agregan o eliminan un valor de clase.ng-hide
ng-hide
Las otras directivas agregan un ng-enter
valor de clase cuando ingresan al DOM y un ng-leave
atributo cuando se eliminan del DOM.
La ng-repeat
directiva también agrega un ng-move
valor de clase cuando el elemento HTML cambia de posición.
Además, durante la animación, el elemento HTML tendrá un conjunto de valores de clase, que se eliminarán cuando finalice la animación. Ejemplo: la
ng-hide
directiva agregará estos valores de clase:
ng-animate
ng-hide-animate
ng-hide-add
(si el elemento estará oculto)ng-hide-remove
(si se mostrará el elemento)ng-hide-add-active
(si el elemento estará oculto)ng-hide-remove-active
(si se mostrará el elemento)
Animaciones usando CSS
Podemos usar transiciones CSS o animaciones CSS para animar elementos HTML. Este tutorial le mostrará ambos.
Para obtener más información sobre la animación CSS, estudie nuestro Tutorial de transición CSS y nuestro Tutorial de animación CSS .
Transiciones CSS
Las transiciones de CSS le permiten cambiar los valores de las propiedades de CSS sin problemas, de un valor a otro, durante un período determinado:
Ejemplo:
Cuando el elemento DIV obtenga la .ng-hide
clase, la transición tomará 0.5 segundos y la altura cambiará suavemente de 100px a 0:
<style>
div {
transition: all linear 0.5s;
background-color: lightblue;
height: 100px;
}
.ng-hide
{
height: 0;
}
</style>
Animaciones CSS
CSS Animations te permite cambiar los valores de las propiedades CSS sin problemas, de un valor a otro, durante un período determinado:
Ejemplo:
Cuando el elemento DIV obtenga la .ng-hide
clase, myChange
se ejecutará la animación, que cambiará suavemente la altura de 100px a 0:
<style>
@keyframes myChange {
from {
height: 100px;
} to {
height: 0;
}
}
div {
height: 100px;
background-color: lightblue;
}
div.ng-hide {
animation: 0.5s myChange;
}
</style>