GreenSock Animation Platform (GSAP) позволяет вам анимировать все, что вы можете получить с помощью JavaScript, включая DOM, Canvas и CSS, а также свои собственные пользовательские объекты.
GSAP также помогает разрешить несогласованности браузера для более легкого тестирования пользователей, позволяет использовать объекты для управления сложной анимацией и работает до 20 раз быстрее, чем jQuery. Он стал стандартом в отрасли и использовался на бесчисленных удостоенных наград веб-сайтах.
Содержание статьи
- 1 01. Настройте базовый HTML-файл
- 2 02. Включите библиотеку GSAP
- 3 03. Анимация с tweening
- 4 04. Tween from and FromTo
- 5 05.
- 6 06. Ослабление функций и In / Out
- 7 07 , Задержка анимации
- 8 08. Функции обратного вызова
- 9 09. Параметры обратного вызова
- 10 10. Управление анимацией
- 11 11. CSS и CSSPlugin
- 12 12. 2D и 3D-преобразования
- 13 13. Timeline
- 14 14. Контроль временной шкалы
- 15 15. Получить и установить свойства
01. Настройте базовый HTML-файл
Включите изображение с логотипом в ваш HTML-файл
Лучший способ узнать GSAP — увидеть его в действии. В этом уроке вы узнаете о ключевых особенностях платформы с рабочими примерами, которые вы можете использовать в своих проектах сегодня!
Начните с создания базового HTML-файла, где вы можете зайти в свой код JavaScript. Включите изображение с логотипом . Вы будете использовать GSAP для анимации свойств, чтобы увидеть, как это работает.
02. Включите библиотеку GSAP
Затем вам нужно добавить GSAP в свой веб-проект. Между вашими и
03. Анимация с tweening
Tweening — это процесс изменения значения с течением времени для создания анимации. Например, перемещение объекта из A в B, его масштабирование или его вращение. Вы можете также настроить свои собственные значения.
Самый простой способ подстроить свойство — использовать функцию TweenMax.to () . Для этого требуется целевой объект, продолжительность и пары свойств / значений, которые вы анимируете. Чтобы увидеть функцию в действии, попробуйте выполнить каждую из строк кода ниже, используя логотип в качестве целевого объекта:
// tween x position from current to 400 over 2 секунды TweenMax.to (". logo", 2, {x: 400}); // tween y position from current to 200 и opacity до 0, более 1 секунды TweenMax.to (". logo", 1, {y: 200, opacity: 0}); // tween x и y to 100, масштаб до 1,5 и поворот на 90 градусов, более 2 секунд TweenMax.to (". logo", 2, {x: 100, y: 100, масштаб: 1,5, вращение: 90})
04. Tween from and FromTo
Вы можете определить начальное и конечное значения для tweening
Вы можете перемещать свойство из его текущее значение к новому, используя — () но вы также можете tween из значение к его текущему значению. Например, если ваш логотип начинается с позиции x 0 и вы хотите, чтобы он закончился, вы могли бы сделать это:
tweenMax.from ( «.logo», 2, {x: 400}),
В этом случае ваш логотип немедленно переместится на x = 400 а затем на x = 0 . Вы можете даже определить начальное и конечное значения, игнорируя текущие значения с помощью fromTo () следующим образом:
TweenMax.fromTo («. Logo», 2, {x : 400}, {х: 200});
05.
Ослабление добавляет характер вашей анимации
Ослабление — это «стиль» анимации, поскольку переход значений из От А до Б. Вместо постоянной скорости, которая называется «линейной», вы можете применять функции для кривой скорости. Они начинают медленно и постепенно ускоряться? Стоят ли они внезапно остановиться и немного подпрыгнуть в конце? В анимации эти стили добавляют характер и эмоции к вашей работе. Вы можете применить функцию ослабления следующим образом:
TweenMax.to (". Logo", 2, {x: 100, y: 100, rotation: 90, ease: Circ.easeIn});
06. Ослабление функций и In / Out
Существует множество вариантов облегчения выбора с помощью GSAP
GSAP включает в себя различные функции ослабления, такие как назад bounce упруго sin circ и ] экспо . Возможно, вы также заметили, что функция легкости обладает свойством easeIn который мы использовали на предыдущем шаге. Вы также можете использовать easeOut и easeInOut . Они указывают, где в анимации применяется кривая ослабления. Попробуйте следующие результаты:
// Ослабление с помощью отскока TweenMax.to («. Logo», 2, {x: 100, y: 100, вращение: 90, легкость : Bounce.easeOut}); // Ослабление In и Out с эластичным TweenMax.to (". logo", 2, {x: 100, y: 100, вращение: 90, легкость: Эластичность.эксплуатация});
07 , Задержка анимации
Иногда вам нужно отложить начало анимации, либо синхронизировать ее с другой анимацией, либо заставить ее ждать появления события. Для этого вы можете использовать другие специальные свойства GSAP, названные delay . Попробуйте следующий код, чтобы узнать, как вы можете задерживать подростки для определенного времени:
TweenMax.to («. Logo», 1, {y: 100, ease: Bounce.easeOut}); // Задержка этого твина на 1 сек. TweenMax.to (". logo", 1, {rotation: 90, ease: Circ.easeOut, delay: 1});
08. Функции обратного вызова
Чтобы интегрировать анимацию с вашим кодом, важно знать, когда происходят события, особенно когда анимация заканчивается или начинается. Для этого вы можете использовать обратный вызов события onComplete . Вы можете знать, когда начинается твин, используя onStart . И вы также можете синхронизировать свою анимацию с другой анимацией или использовать анимацию и ее ускорение для обновления некоторых других настраиваемых объектов. Для этого воспользуйтесь обратным вызовом onUpdate . Вот как вы используете обратный вызов:
TweenMax.to («. Logo», 1, {y: 100, легкость: Bounce.easeOut, onComplete: tweenComplete}); function tweenComplete () {console.log ("tween complete"); }
09. Параметры обратного вызова
При вызове обратных вызовов вы можете передавать информацию вместе с обратным вызовом функции, которая ее обрабатывает. Возможно, вам потребуется передать информацию об абоненте или конкретных значениях. Это позволяет интегрировать ваши анимации с остальной частью базы кода. Все параметры передаются через обратный вызов + «Парамс» то есть onUpdateParams .
В следующем примере вы можете отслеживать ход анимации с использованием ключевого слова {self} и может видеть, как передать несколько параметров с помощью массива:
TweenMax.to (". logo", 1, {y: 100, ease: Bounce.easeOut, onUpdate : tweenUpdate, onUpdateParams: ["{self}", "completed"]}); function tweenUpdate (tween, message) {var percent = tween. progress () * 100; // progress () - это значение 0-1 console.log (процент + "" + сообщение); }
10. Управление анимацией
Итак, теперь вы можете создавать твины и улучшать твины, обратные вызовы и параметры огня. Но как вы контролируете анимацию? Часто вы хотите запустить или остановить их на основе других событий.
Если вам нужно остановить анимацию, вы можете использовать метод pause () . Если вы хотите возобновить анимацию, используйте resume () . Чтобы полностью уничтожить твин, используйте kill () . Попробуйте следующее:
// var для ссылки на tween var tween = TweenMax.to (". Logo", 2, {y: 100, легкость: отскок. EaseOut }); // немедленно приостанавливать tween.pause (); // запускаем событие setTimeout (function () {tween. resume ()}, 1000); // обратная анимация в событии setTimeout (function () {tween. reverse ()}, 3000);
11. CSS и CSSPlugin
CSSPlugin автоматически определяет, когда это необходимо для анимации
CSSPlugin включен, когда вы использование TweenMax . Это огромная экономия времени, поскольку она нормализует поведение в браузерах и автоматически обнаруживает, когда это необходимо для анимации. CSSPlugin может обрабатывать цветные твины, анимацию SVG и оптимизированную производительность с кешированием и другими внутренними трюками — и часто более эффективно переводить позиции через CSS.
Вы уже видели это в действии, когда вы использовали opacity и анимации. Он работает без специального кодирования!
12. 2D и 3D-преобразования
GSAP включает встроенные преобразования, которые позволяют масштабировать, вращать перевод и перекос
Преобразования CSS позволяют масштабировать, вращать перевод и перекос. Они работают как в 2D, так и в 3D, чтобы быстро создавать красивые эффекты. GSAP включает встроенные свойства преобразования, такие как x y rotation rotationX rotationY skewX и шкала . Попробуйте применить следующую анимацию к вашему изображению, а не те, которые мы уже пробовали:
TweenMax.to (". Logo", 3, {x: 100, y: 100, scale: 1.5 , rotationY: 360, легкость: Bounce.easeOut});
13. Timeline
Объект временной привязки GSAP позволяет управлять несколькими анимациями
После того, как вы перейдете за пределы одного или двух подростков, вы можете задаться вопросом, как управлять несколькими анимациями. GSAP включает объект чтобы сделать именно это. Вы добавляете подростки к объекту шкалы времени и можете использовать параметр после того, как они будут показаны на время. Вы можете работать подростками один за другим или иметь пробелы или даже перекрывать их. Добавьте еще несколько изображений в ваш HTML с классами logo2 и logo3 соответственно.
Чтобы посмотреть, как это работает, попробуйте следующий временной шкалу код:
// создайте экземпляр временной шкалы var tl = new TimelineMax (); tl.add (TweenMax.to (". logo", 1, {x: 50})); // обратите внимание на окончательное «0», чтобы начать с 0 секунд. tl.add (TweenMax.to (". logo2", 1, {y: 100}), "0"); // обратите внимание на «+.25», чтобы этот запуск начинался с 0,25 секунды. tl.add (TweenMax.to («. logo3», 1, {rotationY: 180, y: 50, X: 50}), + .25 "),
14. Контроль временной шкалы
Также, как и управление анимацией, вы также можете контролировать временные рамки. К счастью, вы можете сделать паузу, возобновить и обратить вспять, как вы можете, с анимацией. Вы также можете добавить параметры к временной шкале в repeat yoyo и добавить обратные вызовы для всей временной шкалы. Вы также можете управлять скоростью временной шкалы, используя свойство timeScale . Попробуйте заменить свое объявление временной шкалы на следующий код, чтобы увидеть, как он работает:
var tl = new TimelineMax ({// повторяем бесконечное повторение: -1, yoyo: true,});
15. Получить и установить свойства
. Одна из полезных функций — получение и настройка свойств твинов и временных рамок. Таким образом, вы можете узнать общий прогресс и продолжительность или собрать другую информацию о объекте GSAP. В этом примере кода вы можете получить продолжительность временной шкалы, а затем установить свою продолжительность, чтобы изменить его. Это работает так же и для подростков. Это еще один отличный способ реагировать в реальном времени на события и изменять анимацию «на лету». Добавьте следующее после предыдущего кода временной шкалы:
// получите текущую продолжительность временной шкалы console.log (tl.duration ()); // устанавливает продолжительность до 5 секунд после 2 секунд ожидания setTimeout (function () {tl.duration (5);}, 2000);
Эта статья изначально была опубликована в приложении веб-дизайн журнала Web Designer. Купите номер 279 или подписываются .
Подробнее: