Анимации AngularJS
AngularJS предоставляет анимированные переходы с помощью CSS.
Что такое анимация?
Анимация — это когда преобразование HTML-элемента создает иллюзию движения.
Пример:
Установите флажок, чтобы скрыть DIV:
<body ng-app="ngAnimate">
Hide the DIV: <input type="checkbox" ng-model="myCheck">
<div ng-hide="myCheck"></div>
</body>
Приложения не должны быть наполнены анимацией, но некоторые анимации могут сделать приложение более понятным.
Что мне нужно?
Чтобы ваши приложения были готовы к анимации, вы должны включить библиотеку AngularJS Animate:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-animate.js"></script>
Затем вы должны обратиться к ngAnimate
модулю в вашем приложении:
<body ng-app="ngAnimate">
Или, если у вашего приложения есть имя, добавьте ngAnimate
в качестве зависимости в свой модуль приложения:
Пример
<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>
Что делает ngAnimate?
Модуль ngAnimate добавляет и удаляет классы.
Модуль ngAnimate не анимирует ваши HTML-элементы, но когда ngAnimate замечает определенные события, такие как скрытие или отображение HTML-элемента, элемент получает некоторые предопределенные классы, которые можно использовать для создания анимации.
Директивы в AngularJS, которые добавляют/удаляют классы:
ng-show
ng-hide
ng-class
ng-view
ng-include
ng-repeat
ng-if
ng-switch
Директивы ng-show
и ng-hide
добавляют или удаляют ng-hide
значение класса.
Другие директивы добавляют ng-enter
значение класса, когда они входят в DOM, и ng-leave
атрибут, когда они удаляются из DOM.
Директива ng-repeat
также добавляет ng-move
значение класса, когда элемент HTML меняет позицию.
Кроме того, во время анимации элемент HTML будет иметь набор значений класса, которые будут удалены после завершения анимации. Пример:
ng-hide
директива добавит следующие значения класса:
ng-animate
ng-hide-animate
ng-hide-add
(если элемент будет скрыт)ng-hide-remove
(если элемент будет показан)ng-hide-add-active
(если элемент будет скрыт)ng-hide-remove-active
(если элемент будет показан)
Анимации с использованием CSS
Мы можем использовать переходы CSS или анимацию CSS для анимации элементов HTML. Этот урок покажет вам оба.
Чтобы узнать больше об CSS-анимации, изучите наш учебник по CSS-переходам и наш учебник по CSS-анимации .
CSS-переходы
Переходы CSS позволяют плавно изменять значения свойств CSS, от одного значения к другому, в течение заданного времени:
Пример:
Когда элемент DIV получит .ng-hide
класс, переход займет 0,5 секунды, а высота плавно изменится от 100px до 0:
<style>
div {
transition: all linear 0.5s;
background-color: lightblue;
height: 100px;
}
.ng-hide
{
height: 0;
}
</style>
CSS-анимации
CSS-анимации позволяют плавно изменять значения свойств CSS, от одного значения к другому, в течение заданного времени:
Пример:
Когда элемент DIV получит .ng-hide
класс, myChange
запустится анимация, которая плавно изменит высоту от 100px до 0:
<style>
@keyframes myChange {
from {
height: 100px;
} to {
height: 0;
}
}
div {
height: 100px;
background-color: lightblue;
}
div.ng-hide {
animation: 0.5s myChange;
}
</style>