Написать пост

Как оживить свой сайт: 5 инструментов для анимации в современном WEB

Аватар Типичный программист

Обложка поста Как оживить свой сайт: 5 инструментов для анимации в современном WEB

Анимация — один из основных трендов в современном сайтостроении. Элементы анимации в интерфейсах выносят их юзабилити на новый уровень, делая их интуитивно понятными и доступными обычному пользователю. На лендингах или, например,  корпоративных сайтах  она помогает более наглядно рассказать посетителю о вашем продукте или показать его преимущества.

Мы сделали подборку из 5 библиотек для создания анимации на web-сайтах, рассказав об их преимуществах, недостатках и сферах применения.

GreenSock Animation Platform

Как оживить свой сайт: 5 инструментов для анимации в современном WEB 1

GreenSock Animation Platform или GSAP — это, пожалуй, одна из самых функциональных javascript-библиотек для анимирования. Как говорят её создатели, это «новый стандарт для HTML5 анимации». Она имеет низкий порог вхождения, подробную документацию, высокую производительность, гибкость и совместимость со старыми браузерами. Важным преимуществом GSAP является также то, что библиотека умеет «анимировать» не только CSS или Canvas, но и любую числовую переменную любого javascript-объекта.

Пример кода на GSAP:

			// увеличивает высоту и ширину картинки (html элемента)
TweenLite.fromTo(photo, 1.5, {width:0, height:0}, {width:100, height:200};
		

С другой стороны, GSAP является относительно тяжелой, поэтому для создания небольшой анимации HTML элементов (исчезание, появление, переворот и т.д.) лучше воспользоваться более легковесными аналогами.

Tween.js

Tween.js является дополнением к easel.js — одному из самых популярных javascript-фреймворков для удобной и легкой работы с canvas. Тем не менее, tween не имеет никаких зависимостей и может использоваться как вместе, так и отдельно от easel.

Как вы, наверное, уже догадались, основная задача библиотеки tween.js — это анимация в Canvas. И она отлично с ней справляется, делая за вас и упрощая многие вещи. Вот, например, код, который «гоняет» по экрану круг, меняя при этом его прозрачность:

			createjs.Tween.get(circle, { loop: true })
  .to({ x: 400 }, 1000, createjs.Ease.getPowInOut(4))
  .to({ alpha: 0, y: 175 }, 500, createjs.Ease.getPowInOut(2))
  .to({ alpha: 0, y: 225 }, 100)
  .to({ alpha: 1, y: 200 }, 500, createjs.Ease.getPowInOut(2))
  .to({ x: 100 }, 800, createjs.Ease.getPowInOut(2));
		

Но при этом для анимации HTML элементов tween.js совершенно не подходит — с этим справляются следующие два инструмента.

Move.js

Move.js — javascript-библиотека, позволяющая делать всё то же, что и tween.js, только с использованием CSS3 и HTML5 вместо Canvas. Она является не самой легкой (как для JS), но одной из самых популярных. Набор заранее заготовленных видов анимации (поворот, наклон, ротация и тд.) делает её также одной из самых легких в использовании.

Пример кода c использованием Move.js:

			move('#example-4 .box')
  .rotate(140)
  .end();
		

WOW.js + Animate.css

На самом деле это не настоящие библиотеки или фреймворки для анимации, по крайней мере в привычном понимании.

Animate.css — всего лишь CSS файл, в котором собраны несколько десятков правил, связанных с анимаций, а WOW.js — всего лишь маленький скрипт, запускающий эти анимации по мере прокрутки страницы.

Тем не менее, вместе эти два скрипта являются, пожалуй, лучшим способом заставить HTML элементы двигаться, или, говоря другими словами, анимировать их.

Во-первых, решает легковесность. Всего 2 КБ и никаких зависимостей!

Во-вторых, wow.js и animate.css являются крайне простыми в использовании. Скорее всего, вам не придется написать ни строчки лишнего JS кода. Достаточно подключить эти два скрипта к странице и добавить к элементу, который нужно анимировать, пару css классов: класс wow и класс нужной нам анимации.

Пример:

			<img class=”wow rotateIn” src=”dog.jpg” alt=””>
		

Теперь при загрузке страницы вместо статического отображения этот элемент будет красиво крутиться:

Для настройки анимации используются специальные data-атрибуты, например, data-wow-duration=”2s” задаст продолжительность кручения в 2 секунды.

Демо, более подробную документацию и полный список data-атрибутов можно найти на официальном сайте WOW.js, полный список классов анимации — на официальном сайте Animate.js.

Анимация средствами JQuery

Как оживить свой сайт: 5 инструментов для анимации в современном WEB 5

По статистике, почти 50% сайтов используют JQuery. Если ваш сайт входит в их список и у вас тоже подключена эта популярная библиотека, то, возможно, стоит не изобретать велосипеды, а воспользоваться встроенными в неё средствами анимации?

Это могут быть как стандартные $.show(), $.hide(), $.fadeIn(), $fadeOut и т.д., так и функция $.animate(), которая позволяет создавать гораздо более сложные анимации.

Подробнее об анимации в JQuery можно почитать здесь.

Стоит также упомянуть о библиотеке Velocity.js, которая предоставляет такое же API для анимации как и JQuery, но при этом никаких зависимостей не имеет. Пригодится тем, кому нужна анимация из JQuery, но сам JQuery не нужен.

Итак, подведем итоги:

Я хочу сделать анимацию…

И в Canvas, и в HTML: GSAP.

Только в Canvas: tween.js.

Только в HTML: WOW.js + Animate.css или Move.js.

В HTML, и мой сайт использует JQuery: JQuery Effects.

 

Следите за новыми постами
Следите за новыми постами по любимым темам
49К открытий49К показов