Метод .animate() в jQuery: анимация изображений, текста и чего угодно
Метод .animate() позволяет создавать анимационные эффекты с использованием css-свойств самих объектов. Метод имеет две вариации с различным количеством передаваемых параметров:
1 |
.animate( properties [, duration ] [, easing ] [, complete ] ) |
где:
- properties — css свойство, над которым будет производиться трансформация
- duration — продолжительность процесса трансформации (по умолчанию 400)
- easing — используемая функция для анимации
- complete — callback-функция, которая будет вызвана по окончанию анимации
1 |
.animate( properties, options ) |
Эта вариация вызова может быть использована, если вам необходимо передать больше различных параметров.
- properties — css свойство, над которым будет производиться трансформация
- options — набор опций
Возможные опции:
- duration — продолжительность процесса трансформации (по умолчанию 400)
- easing — используемая функция для анимации (по умолчанию «swing»)
- complete — callback-функция, которая будет вызвана по окончанию анимации
- queue — булево значение, которое сигнализирует о том, нужно ли помещать данную анимацию в очередь или нет. Если false, то анимация будет выполнена сразу же (по умолчанию true)
- specialEasing — объект, содержащий несколько свойств и соответствующие им easy-функции для выполнения
- step — функция, которая может быть вызвана для каждого анимируемого свойства и которая позволяет изменить значение данного свойства перед анимацией
- progress — функция, которая вызывается после каждого шага анимации, но только один раз для конкретного анимируемого свойства
- start — функция, вызываемая после старта анимации
- done — функция, вызываемая после окончания анимации
- fail — функция, вызываемая, если невозможно завершить анимацию по каким-то причинам
- always — функция, вызываемая, если анимация завершилась или остановлена без завершения
Метод .animate() позволяет создавать анимацию для любого числового свойства css. Например, такие свойства, как width, height, и left могут быть анимированы, а background-color — нет, поскольку ее значение не является строго числовым (в десятичной системе).
В дополнении к стилевым свойствам, таким не css-свойства, как scrollTop и scrollLeft также могут быть анимированы.
Числовые значения для анимации также могут заменяться на строковые константы: ‘show’, ‘hide’, и ‘toggle’. Их задача, в общем-то, понятна.
Обратите внимание, что если вы сначала скрываете элемент, а потом запускаете анимацию, то анимация будет запущена, но элемент останется скрытым.
Продолжительность анимации
Продолжительность анимации задается в миллисекундах. Чем больше значение, тем дольше выполняется анимация. Если продолжительность не указывается, то используется значение по умолчанию 400. Также могут быть использованы строковые константы ‘fast’ и ‘slow’, которые имеют значение 200 и 600 соответственно.
Пример использования
Допустим, у нас есть какое-то изображение:
1 |
<img id="test" src="test.png" width="300" height="200" style="position: relative; left: 20px;"> |
Теперь мы хотим при клике по картинке изменить (создать анимацию) для трех свойств: прозрачность, сдвиг по горизонтали влево и высоту. Это можно сделать с помощью следующего кода:
1 2 3 4 5 6 7 8 9 |
$( "#test" ).click(function() { $( "#test" ).animate({ opacity: 0.40, left: "+=30", height: 100 }, 6000, function() { // анимация закончена }); }); |
Категория: jQuery