Добрый день дорогие Хабрахабровцы.

Решил сделать страничку с красивой анимацией, и под руку попалась Edge Animate. Поискав на хабре какие-нибудь статьи по ней, понял что особо никто не писал гайдов, поэтому решил изучать самостоятельно.

В итоге 30 минут знакомства с программой, и на удивление красивый результат.




Adobe Edge Animate распространяется бесплатно, все что нужно это зарегистрировать учетную запись Adobe ID, и установить сам Edge.

Те кто работали с Adobe After Effects, поймут интерфейс достаточно быстро, а так же приятным удивлением будет все те же работающие хоткеи.

Задача : создать анимацию кнопки, которая при нажатии менялась бы из выключенной во включенную, а так же раздвигались дверцы в котором был бы основной контент сайта.

Задача понятна, поехали.

При открытии Edge у нас уже создан элемент Stage, который выставлен на TimeLine(Снизу), в раздел Elements(Справа) и его настройки показаны слева.



Stage это главный див, в котором и будем работать, поэтому меняем его разрешение на нашу рабочую область 1100x600. Рядом с разрешением есть 2 квадратика: Первый это заливка цветом, второй заливка градиентом. К слову, очень удобно реализовано изменение цвета, а так же есть возможность сохранить цвет в палитру.



В настройках Stage убираем галочку с пункта Autoplay, чтобы анимация не запускалась без клика и ставим заливку цвета серым цветом.

Создаем главный див для кнопки, для этого выбираем в верхней панели инструментов овал, и зажимая шифт растягиваем его на 150px.


После того как создали круг, перемещаем его по центру дива(при пересечении главных осей, появляются фиолетовые линии, перетаскиваем круг на их пересечении)



Теперь у нас появился новый див под название Ellipse, который добавился в область тайм лайна, и в раздел Elemets (в этом разделе, как вы поняли из названия, находятся все элементы проекта, здесь можно сразу добавить эвенты к ним, по нажатию на фигурные скобки, а так же управлять вложенностью дивов, путем перетаскивания, что несомненно удобно!)

Сразу меняем название элипса на Button для удобства, это можно сделать по двойному клику на название в области таймлайна, в окошке элементы, а так же в окошке настроек сверху (Несомненно удобно).

Настройки элипса более расширенные по сравнению со Stage.



Большинство функций являются изменением свойств css, можно увидит что изменяет каждая функция если навести на ее значок.

Перед описанием функций, хотел бы рассказать как происходит анимация, и их управление. Она здесь сделана с помощью кейфреймов (ромбиков), рядом с каждой функцией они присутствует. Если мы нажмем на ромб, у нас добавится этот самый кейфрейм на таймлайн, и ему присваивается значение функции которое сейчас выставлено, отодвинув ползунок времени, мы можем создать еще один кейфрейм с другим значением функции, и при воспроизведении анимации, значение функции будем меняться от первого значения кейфрейма до втрого значения. Подробнее я покажу на примере.


Пробежимся быстро по функциям.

В самом верху мы видим название дива, кнопка c — дает возможность прописать класс для него, а двойные скобки прописать эвент.

Ниже раздел отображения элемента.

Глаза, 2 кубика и шкала прозрачности отвечают за css свойства: Display, Overflow, Opactiy.
Position and Size — за расположение и размер дива
Color — за заливку цветом, градиентом, а так же добавление бордера.
Transform — изменение дива относительно точки origin (что бывает очень удобно если див нужно уменьшить относительно центра).

Следующая пачка настроек

Cursor — курсор при наведении
Corners — сглаживание углов (очень удобно, есть возможность сгладить все углы одинаково, либо каждые 4 или 8 сторон по разному, если бы можно было сохранять их как цвет в палитре было бы супер)
Shadow — настройки тени
Filters — разные дополнительные фильтры такие как blur, invert, contrast (но они поддерживаются пока не во всех браузерах)
Clip — маска дива(но только по 4 сторонам)
Accessibiity — добавление атрибутов title и tab index.

Каждую функцию можно анимировать, поэтому все зависит только от вашей фантазии.

Ну а теперь начнем создавать нашу задумку.

Выставляем цветом button темно серый, и применяем функцию shadow чтобы имитировать ее объем


После этого добавляем еще один круг, для внутренней части кнопки с цветом активности.
Тут нам на помощь приходят хоткеи из After Effects, выбираем button и нажимаем Ctrl+D. Переименовываем его в btn_inner, и перетаскиваем его в окне элементы внутрь Button

Теперь мы вложили btn_inner в див Button, и если мы начнем анимировать Button, то btn_inner так же начнет изменяться. Все просто и удобно!

Выключаем Shadow, добавляем в Color цвет бордеру(3й квадратик слева) на красный, и задаем размер 6px. Центрируем наш див, и меняем размер в Transform на 76%. Изменяем цвет на прозрачный, и добавляем Radial градиент



В итоге получаем



Добавляем текст «OFF», ArialBlack 33px, цвет черный, и Shadow красный. Переименовываем в btn_text_off, и засовываем в Button в элементах.



Теперь начнем анимировать. Первым делом добавим к Button эвент(двойные скобочки), справа в элементах. Выбираем click, и нажимаем справа play, теперь по нажатию на див button, у нас будет проигрываться анимация, все просто и элементарно.

Нам нужно изменить shadow у button из dropShadow на InsetShadow, к сожалению добавить несколько shadow в Edge нельзя, поэтому будем хитрить.

Нажимаем на P и у нас в окне таймлайна выбирается элемент pin, он позволяет не создавать самостоятельно каждый кейфрейм, а делать это автоматически. перемещаем ползунок на отметку 0.250 и именяем значение shadow-blur 0. Тем самым у вас получается такая анимация.


Нажимаем еще раз P чтобы выключить pin, перемещаем ползунок на значение 0,5 и в настройки градиента button, и меняем значение как показано на картинке



Добавляем градиент в палитру, и закрываем окошко. Теперь нажимаем опять P, и перемещаемся на отметку 0,250, открываем окно градиента, выбираем градиент из палитры, и меняем из значения на прозрачный не меняя положение точек.

У вас должна получится анимация изменение тени кнопки, проверить можно с помощью клавиш ctrl+enter (и снова привет AE)


Отлично тень меняется, теперь нужно анимировать размер кнопки, т.к. она отдаляется от нас.

Перемещаем ползунок на начало, нажимаем p, выбираем Button, перемещаем на отметку 0.425 и меняем значение transform на 95%.

Так же при создании анимации, можно выбрать как анимация будет происходить, либо линейно, либо по разным шаблонам. Для выбора их, нужно выделить анимацию, и рядом со значком pin нажать на иконку графика. Здесь вы можете поиграться со значениями и выбрать самое подходящее для вас.


Теперь анимируем красный бордер, от 0,250 до 0,500 изменяем значение бордера с красного на голубой.

И получаем примерно так



Содержание текста нельзя анимировать, поэтому сделаем копию текста, и анимируем его прозрачность.

Ctrl+d на тексте, переименовываем в btn_text_on, изменяем цвет на синий, и тень на темно синюю.

С помощью нашего любимого пина, анимируем прозрачность(сверху под глазом), у btn_text_off с 0,115 до 0,305; значения с 1 до 0. У btn_text_on
с 0,250 до 0,425; значения с 0 до 1, чтобы одно на другое немножко заезжало



Проверяем ctrl+enter, все супер.

Осталось сделать двери. Создаем 2 квадрата размером с половину ширины, один ставим слева, другой справа. Соответственно Left_door, Right_door. Цвет для заливки берем из бэкграунда, благо есть палитра которой можно воспользоваться, а сам бэкграунд делаем темнее.

А теперь вкладываем button в left_door, т.к. кнопка будет уезжать вместе с дверью влево. Перемещение в 1 клик, плевое дело, все как нужно.



С помощью пина анимируем левую и правую. Анимируем 0,600 до 3,0 на -480px для левой и для для правой двери 1030px. Выбираем обе анимации и выбираем Easing EasyInOut — Quart.

Чтобы сделать паз для кнопки в правой двери воспользуемся маской, и обрежим круг на половину. Для этого ctrl+d на button, удаляем все вложенные дивы в него, а так же все кейфреймы, и переименовываем в door_right_btn, вкладываем его в Right_door и перемещаем ползунок времени вперед.



Теперь, убираем тень, и заливаем более темным цветом. Переходим в раздел clip, и ставим значение 75 слева. Для эффектности добавляем inset Shadow 7px полупрозрачным черным. А так же анимируем DropShadow у Left_door и Right_door.

И вот наш результат



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

Чтобы прописать css стили из edge, нужно зайти в event Stage, выбрать compositionReady и прописать

$("#Stage").css("margin","auto");
$("body").css("background-color","#232323");


Итого на все про все 30 минут

Все что получилось уже можно редактировать в блокноте, и накручивать что угодно. А на деле мы имеем удобный и быстрый инструмент для создания красивой кросбраузерной анимации.

Написав этот топик, я не претендую на самый простой или самый быстрый способ создания подобной анимации, я просто рассказал что Adobe Edge Animate очень удобная и быстро осваиваемая программа, в которой может разобраться любой человек без опыта работы с JS.

То что получилось можно посмотреть здесь

Пишите вопросы, постараюсь на все ответить, если тема интересная, в ближайшем будущем могу сделать еще пару уроков по Adobe Edge