Улучшить эту документацию Просмотреть исходный код $animate
- $animateProvider
- Сервис в модуле ng
Сервис $animate предоставляет ряд методов для работы с DOM, которые обеспечивают поддержку анимационных хуков. По умолчанию применяются операции с DOM, однако, если обнаружена анимация (и анимации включены), $animate выполнит необходимые действия для обеспечения её запуска вместе с операцией DOM.
По умолчанию $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 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 `listenerFn` that is set // to listen for `enter` on the given `element` as well as its children $animate.off('enter', container, callback);Параметры
Параметр Тип Подробности event stringсобытие анимации (например, вход, выход, перемещение, добавление класса, удаление класса и т. д.)
container (необязательно)DOMElementэлемент-контейнер, на котором был размещен обработчик событий
callback (необязательно)Function=функция обратного вызова, зарегистрированная как обработчик
-
pin(element, parentElement);
Связывает предоставленный элемент с родительским элементом-хостом, чтобы позволить элементу анимироваться даже если он существует вне структуры DOM приложения Angular. Тем самым, любая анимация, инициированная через
$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 не указан)
after (необязательно)DOMElementэлемент-побратим, после которого будет добавлен элемент
options (необязательно)objectнеобязательная коллекция параметров/стилей, которые будут применены к элементу
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
move(element, parent, [after], [options]);
Вставляет (перемещает) элемент в новое положение в DOM либо после элемента
after(если указан), либо как первый дочерний элемент элементаparentи затем запускает анимацию. Возвращается обещание, которое будет выполнено во время следующего цикла обработки, после завершения анимации.Параметры
Параметр Тип Подробности element DOMElementэлемент, который будет перемещен в новое положение в DOM
parent DOMElementродительский элемент, который добавит элемент в качестве дочернего (если элемент after не указан)
after (необязательно)DOMElementэлемент-побратим, после которого будет добавлен элемент
options (необязательно)objectнеобязательная коллекция параметров/стилей, которые будут применены к элементу
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
leave(element, [options]);
Запускает анимацию, а затем удаляет элемент из DOM. При вызове функции возвращается обещание, которое будет выполнено во время следующего цикла обработки, после завершения анимации.
Параметры
Параметр Тип Подробности element DOMElementэлемент, который будет удален из DOM
options (необязательно)objectнеобязательная коллекция параметров/стилей, которые будут применены к элементу
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
addClass(element, className, [options]);
Запускает анимацию добавления предоставленного(ых) класса(ов) CSS. После выполнения операция добавления класса будет обработана только после следующего цикла обработки, и она не запустит анимацию, если элемент уже содержит класс CSS или если класс будет удален на более позднем шаге. Обратите внимание, что анимации на основе классов обрабатываются по-другому по сравнению со структурными анимациями (такими как вход, перемещение и выход), так как CSS-классы могут добавляться/удаляться в разных точках в зависимости от того, используются ли анимации CSS или JavaScript.
Параметры
Параметр Тип Подробности element DOMElementэлемент, к которому будут применены CSS-классы
className stringCSS-класс(ы), который(ые) будут добавлены (несколько классов разделены пробелами)
options (необязательно)objectнеобязательная коллекция параметров/стилей, которые будут применены к элементу
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
removeClass(element, className, [options]);
Вызывает анимацию removeClass, окружающую удаление предоставленного(ых) CSS класса(ов). После выполнения операция removeClass будет обработана только после следующего переваривания, и она не вызовет анимацию, если элемент не содержит CSS класс или если класс добавлен на более позднем этапе. Обратите внимание, что анимации, основанные на классах, обрабатываются по-другому по сравнению со структурными анимациями (например, enter, move и leave), так как CSS классы могут быть добавлены/удалены в разные моменты в зависимости от того, используются ли CSS или JavaScript анимации.
Параметры
Параметр Тип Подробности element DOMElementэлемент, к которому будут применены CSS классы
className stringCSS класс(ы), которые будут удалены (несколько классов разделяются пробелами)
options (необязательно)objectнеобязательный набор опций/стилей, которые будут применены к элементу
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
setClass(element, add, remove, [options]);
Выполняет добавление и удаление CSS классов на элементе и (в процессе) вызывает анимацию, окружающую добавление/удаление класса. Подобно
$animate.addClassи$animate.removeClass,setClassбудет оценивать добавляемые/удаляемые классы только после того, как пройдет переваривание. Обратите внимание, что анимации, основанные на классах, обрабатываются по-другому по сравнению со структурными анимациями (например, enter, move и leave), так как CSS классы могут быть добавлены/удалены в разные моменты в зависимости от того, используются ли CSS или JavaScript анимации.Параметры
Параметр Тип Подробности element DOMElementэлемент, к которому будут применены CSS классы
add stringCSS класс(ы), которые будут добавлены (несколько классов разделяются пробелами)
remove stringCSS класс(ы), которые будут удалены (несколько классов разделяются пробелами)
options (необязательно)objectнеобязательный набор опций/стилей, которые будут применены к элементу
Возвращаемое значение
Promiseобещание обратного вызова анимации
-
animate(element, from, to, [className], [options]);
Выполняет инлайновую анимацию на элементе, которая применяет предоставленные стили from и to к элементу. Если какой-либо обнаруженный 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стили from (начальные) CSS, которые будут применены к элементу и во время анимации.
to objectстили to (конечные) CSS, которые будут применены к элементу и во время анимации.
className (необязательно)stringнеобязательный CSS класс, который будет применён к элементу на период анимации. Если это значение оставлено пустым, то CSS класс
ng-inline-animateбудет применён к элементу. (Обратите внимание, что если анимация не обнаружена, то это значение не будет применено к элементу.)options (необязательно)objectнеобязательный набор опций/стилей, которые будут применены к элементу
Возвращаемое значение
Promiseобещание обратного вызова анимации
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.4.14/docs/api/ng/service/$animate