Улучшить эту документацию Просмотреть исходный код $animate
- $animateProvider
- сервис в модуле ng
Обзор
Сервис $animate предоставляет набор методов для работы с DOM, поддерживающих анимацию. По умолчанию выполняются обычные операции с DOM, но при обнаружении анимации (если анимации включены), $animate выполняет необходимые действия, чтобы анимация прошла успешно.
По умолчанию $animate не вызывает анимации. Это потому, что модуль ngAnimate не включён, и только когда он активен, то анимационные хуки, которые $animate запускает, будут функциональны. После активации все структурные ng- директивы будут запускать анимации при выполнении операций с DOM (вход, выход и перемещение). Другие директивы, такие как ngClass, ngShow, ngHide и ngMessages, также поддерживают анимации.
Рекомендуется всегда использовать сервис $animate при выполнении операций с DOM в директивах.
Чтобы узнать больше о включении поддержки анимации, перейдите на страницу модуля ngAnimate.
Методы
-
on(event, container, callback);
Настраивает обработчик событий, который срабатывает всякий раз, когда событие анимации (вход, выход, перемещение и т.д...) сработало на заданном элементе или среди его дочерних элементов. После срабатывания обработчика, указанная функция обратного вызова запускается со следующими параметрами:
$animate.on('enter', container, function callback(element, phase) { // cool we detected an enter animation within the container } );Параметры
Параметр Тип Подробности event stringсобытие анимации, которое будет захвачено (например, вход, выход, перемещение, добавление класса, удаление класса и т.д...)
container DOMElementэлемент контейнера, который будет захватывать каждое из событий анимации, которые срабатывают на нём самом, а также среди его дочерних элементов
callback Functionфункция обратного вызова, которая будет вызвана при срабатывании обработчика
Аргументы, присутствующие в функции обратного вызова:
-
element- Захваченный DOM-элемент, на котором была запущена анимация. -
phase- Фаза анимации. Возможные две фазы: start (когда анимация начинается) и close (когда она заканчивается).
-
-
off(event, [container], [callback]);
Отменяет регистрацию обработчика событий, основанного на событии, которое было связано с предоставленным элементом. Этот метод можно использовать тремя различными способами в зависимости от аргументов:
// remove all the animation event listeners listening for `enter` $animate.off('enter'); // remove listeners for all animation events from the container element $animate.off(container); // remove all the animation event listeners listening for `enter` on the given element and its children $animate.off('enter', container); // remove the event listener function provided by `callback` that is set // to listen for `enter` on the given `container` as well as its children $animate.off('enter', container, callback);Параметры
Параметр Тип Подробности event | container stringDOMElementсобытие анимации (например, вход, выход, перемещение, добавление класса, удаление класса и т.д...), или элемент контейнера. Если это элемент, все остальные аргументы игнорируются.
container (необязательно)DOMElementэлемент контейнера, на котором был размещён обработчик событий
callback (необязательно)Function=функция обратного вызова, которая была зарегистрирована в качестве обработчика
-
pin(element, parentElement);
Связывает предоставленный элемент с родительским элементом-хостом, чтобы позволить элементу анимироваться даже если он существует вне структуры DOM приложения AngularJS. Таким образом, любая анимация, инициированная через
$animate, может быть запущена на элементе, несмотря на то, находится ли он вне области приложения или внутри другого приложения. Например, если приложение было запущено на элементе, который находится где-то внутри тега<body>, но мы хотели бы позволить элементу разместиться как непосредственному потомку тегаdocument.body, то этого можно достичь, закрепив элемент с помощью$animate.pin(element). Имейте в виду, что вызов$animate.pin(element, parentElement)не фактически вставит что-либо в DOM; он просто создаст связь.Обратите внимание, что эта функция активна только при использовании модуля
ngAnimate.Параметры
Параметр Тип Подробности element DOMElementвнешний элемент, который будет закреплён
parentElement DOMElementродительский элемент-хост, который будет связан с внешним элементом
-
enabled([element], [enabled]);
Используется для получения и установки состояния включения/выключения анимаций для всего приложения или для элемента и его потомков. Эту функцию можно вызвать четырьмя способами:
// returns true or false $animate.enabled(); // changes the enabled state for all animations $animate.enabled(false); $animate.enabled(true); // returns true or false if animations are enabled for an element $animate.enabled(element); // changes the enabled state for an element and its children $animate.enabled(element, true); $animate.enabled(element, false);
Параметры
Параметр Тип Подробности element (необязательно)DOMElementэлемент, который будет рассмотрен для проверки/установки состояния включения
enabled (необязательно)booleanявляется ли анимация включенной для элемента
Возвращаемое значение
booleanявляется ли анимация включенной
-
cancel(animationPromise);
Отменяет предоставленную анимацию.
Параметры
Параметр Тип Подробности animationPromise PromiseОбещание анимации, возвращаемое при запуске анимации.
-
enter(element, parent, [after], [options]);
Вставляет элемент в DOM либо после элемента
after(если указан), либо в качестве первого потомка элементаparent, а затем запускает анимацию. Возвращается обещание, которое будет выполнено во время следующего переваривания, как только анимация завершится.Параметры
Параметр Тип Подробности element DOMElementэлемент, который будет вставлен в DOM
parent DOMElementродительский элемент, который добавит элемент как потомка (если элемент после не указан)
after (необязательно)DOMElementэлемент-потомок, после которого будет добавлен элемент
options (необязательно)objectнеобязательный набор параметров/стилей, которые будут применены к элементу. Объект может иметь следующие свойства:
-
addClass -
{string}- разделяемые пробелом CSS-классы для добавления к элементу -
from -
{Object}- CSS-свойства и значения в начале анимации. Должны соответствоватьto -
removeClass -
{string}- разделяемые пробелом CSS-классы для удаления из элемента -
to -
{Object}- CSS-свойства и значения в конце анимации. Должны соответствоватьfrom
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
addClass -
-
move(element, parent, [after], [options]);
Вставляет (перемещает) элемент в новое положение в DOM либо после элемента
after(если указан), либо в качестве первого потомка элементаparent, а затем запускает анимацию. Возвращается обещание, которое будет выполнено во время следующего переваривания, как только анимация завершится.Параметры
Параметр Тип Подробности element DOMElementэлемент, который будет перемещён в новое положение в DOM
parent DOMElementродительский элемент, который добавит элемент как потомка (если элемент после не указан)
after (необязательно)DOMElementэлемент-потомок, после которого будет добавлен элемент
options (необязательно)objectнеобязательный набор параметров/стилей, которые будут применены к элементу. Объект может иметь следующие свойства:
-
addClass -
{string}- разделяемые пробелом CSS-классы для добавления к элементу -
from -
{Object}- CSS-свойства и значения в начале анимации. Должны соответствоватьto -
removeClass -
{string}- разделяемые пробелом CSS-классы для удаления из элемента -
to -
{Object}- CSS-свойства и значения в конце анимации. Должны соответствоватьfrom
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
addClass -
-
leave(element, [options]);
Запускает анимацию, а затем удаляет элемент из DOM. При вызове функции возвращается обещание, которое будет выполнено во время следующего переваривания, как только анимация завершится.
Параметры
Параметр Тип Подробности element DOMElementэлемент, который будет удалён из DOM
options (необязательно)objectнеобязательный набор параметров/стилей, которые будут применены к элементу. Объект может иметь следующие свойства:
-
addClass -
{string}- разделяемые пробелом CSS-классы для добавления к элементу -
from -
{Object}- CSS-свойства и значения в начале анимации. Должны соответствоватьto -
removeClass -
{string}- разделяемые пробелом CSS-классы для удаления из элемента -
to -
{Object}- CSS-свойства и значения в конце анимации. Должны соответствоватьfrom
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
addClass -
-
addClass(element, className, [options]);
Вызывает анимацию addClass, окружающую добавление предоставленного(ых) CSS класса(ов). После выполнения операция addClass будет обработана только после следующего переваривания, и она не вызовет анимацию, если элемент уже содержит CSS класс или если класс удаляется на более позднем этапе. Обратите внимание, что анимации на основе классов обрабатываются по-другому по сравнению со структурными анимациями (такими как вход, перемещение и выход), поскольку CSS классы могут добавляться/удаляться в разных точках в зависимости от того, используются ли CSS или JavaScript анимации.
Параметры
Параметр Тип Подробности element DOMElementэлемент, к которому будут применяться CSS классы
className stringCSS класс(ы), который(ые) будут добавлены (несколько классов разделяются пробелами)
options (необязательно)objectнеобязательный набор опций/стилей, которые будут применены к элементу. Объект может иметь следующие свойства:
-
addClass -
{string}- CSS классы, разделяемые пробелами, которые нужно добавить к элементу -
from -
{Object}- CSS свойства и значения в начале анимации. Должны соответствоватьto -
removeClass -
{string}- CSS классы, разделяемые пробелами, которые нужно удалить из элемента -
to -
{Object}- CSS свойства и значения в конце анимации. Должны соответствоватьfrom
Возвращает
Promiseобещание обратного вызова анимации
-
addClass -
-
removeClass(element, className, [options]);
Вызывает анимацию removeClass, окружающую удаление предоставленного(ых) CSS класса(ов). После выполнения операция removeClass будет обработана только после следующего переваривания, и она не вызовет анимацию, если элемент не содержит CSS класс или если класс добавляется на более позднем этапе. Обратите внимание, что анимации на основе классов обрабатываются по-другому по сравнению со структурными анимациями (такими как вход, перемещение и выход), поскольку CSS классы могут добавляться/удаляться в разных точках в зависимости от того, используются ли CSS или JavaScript анимации.
Параметры
Параметр Тип Подробности element DOMElementэлемент, к которому будут применяться CSS классы
className stringCSS класс(ы), который(ые) будут удалены (несколько классов разделяются пробелами)
options (необязательно)objectнеобязательный набор опций/стилей, которые будут применены к элементу. Объект может иметь следующие свойства:
-
addClass -
{string}- CSS классы, разделяемые пробелами, которые нужно добавить к элементу -
from -
{Object}- CSS свойства и значения в начале анимации. Должны соответствоватьto -
removeClass -
{string}- CSS классы, разделяемые пробелами, которые нужно удалить из элемента -
to -
{Object}- CSS свойства и значения в конце анимации. Должны соответствоватьfrom
Возвращает
Promiseобещание обратного вызова анимации
-
addClass -
-
setClass(element, add, remove, [options]);
Выполняет добавление и удаление CSS классов на элементе и (во время процесса) вызывает анимацию, окружающую добавление/удаление класса. Подобно
$animate.addClassи$animate.removeClass,setClassбудет оценивать добавляемые/удаляемые классы только после того, как пройдет переваривание. Обратите внимание, что анимации на основе классов обрабатываются по-другому по сравнению со структурными анимациями (такими как вход, перемещение и выход), поскольку CSS классы могут добавляться/удаляться в разных точках в зависимости от того, используются ли CSS или JavaScript анимации.Параметры
Параметр Тип Подробности element DOMElementэлемент, к которому будут применяться CSS классы
add stringCSS класс(ы), который(ые) будут добавлены (несколько классов разделяются пробелами)
remove stringCSS класс(ы), который(ые) будут удалены (несколько классов разделяются пробелами)
options (необязательно)objectнеобязательный набор опций/стилей, которые будут применены к элементу. Объект может иметь следующие свойства:
-
addClass -
{string}- CSS классы, разделяемые пробелами, которые нужно добавить к элементу -
from -
{Object}- CSS свойства и значения в начале анимации. Должны соответствоватьto -
removeClass -
{string}- CSS классы, разделяемые пробелами, которые нужно удалить из элемента -
to -
{Object}- CSS свойства и значения в конце анимации. Должны соответствоватьfrom
Возвращает
Promiseобещание обратного вызова анимации
-
addClass -
-
animate(element, from, to, [className], [options]);
Выполняет инлайновую анимацию на элементе, которая применяет предоставленные стили CSS to и from к элементу. Если обнаружена любая обнаруженная CSS анимация перехода, ключевых кадров или JavaScript, соответствующая предоставленному значению className, то анимация примет предоставленные стили. Например, если для данного className задана анимация перехода, то предоставленные
fromиtoстили будут применены наряду с заданным переходом. Если предоставленный CSS стиль вfromне имеет соответствующего стиля вto, стиль вfromприменяется немедленно, и анимация не запускается. Если обнаружена анимация JavaScript, предоставленные стили будут переданы в качестве параметров функции в методanimate(или как часть параметраoptions):ngModule.animation('.my-inline-animation', function() { return { animate : function(element, from, to, done, options) { //animation done(); } } });Параметры
Параметр Тип Подробности element DOMElementэлемент, к которому будут применяться CSS стили
from objectстили CSS from (начальные), которые будут применены к элементу и во время анимации.
to objectстили CSS to (конечные), которые будут применены к элементу и во время анимации.
className (необязательно)stringнеобязательный CSS класс, который будет применён к элементу на время анимации. Если это значение оставлено пустым, то к элементу будет применён CSS класс
ng-inline-animate. (Обратите внимание, что если анимация не обнаружена, то это значение не будет применено к элементу.)options (необязательно)objectнеобязательный набор опций/стилей, которые будут применены к элементу. Объект может иметь следующие свойства:
-
addClass -
{string}- CSS классы, разделяемые пробелами, которые нужно добавить к элементу -
from -
{Object}- CSS свойства и значения в начале анимации. Должны соответствоватьto -
removeClass -
{string}- CSS классы, разделяемые пробелами, которые нужно удалить из элемента -
to -
{Object}- CSS свойства и значения в конце анимации. Должны соответствоватьfrom
Возвращает
Promiseобещание обратного вызова анимации
-
addClass -
© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.6.9/docs/api/ng/service/$animate