Эффект вращения и увеличения с помощью CSS3. Используем keyframes

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


В том случае если вы не знали — анимацию можно сделать с помощью CSS3. Анимация сделанная с помощью CSS3 создается гораздо проще чем с помощью JavaScript и в будущем будет самым популярным решением для браузеров. Давайте на сегодняшнем примере разберемся как же реализовать на CSS3 вращение и увеличение.

Посмотреть демо

Для начала создадим базовую анимацию с помощью свойства @-webkit-keyframes.

@-webkit-keyframes rotater {
0% { -webkit-transform:rotate(0) scale(1) }
50% { -webkit-transform:rotate(360deg) scale(2) }
100% { -webkit-transform:rotate(720deg) scale(1) }
}

Свойство -webkit-keyframes выступает аниматором в нашей анимации. Определим основные состояния элемента:

  • 0% — вращение 0, масштаб 1 — изначальное состояние элемента без изменений.
  • 50% — вращение на 360 градусов (полный оборот), и элемент вырастет в размерах в 2 раза.
  • 100% — элемент вернется к своему стандартному размеру и повернется на 720 градусов, что будет выглядеть так же как и первоначальное состояние.

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

a.advert:hover {
  /* safari / chrome */
  -webkit-animation-name:rotater;
  -webkit-animation-duration:500ms;
  -webkit-animation-iteration-count:1;
  -webkit-animation-timing-function: ease-out;

  /* mozilla */
  -moz-transform:rotate(360deg) scale(2);
  -moz-transition-duration:500ms;
  -moz-transition-timing-function: ease-out;

  /* opera */
  -o-transform:rotate(360deg) scale(2);
  -o-transition-duration:500ms;
  -p-transition-timing-function: ease-out;

  /* ie */
  -ms-transform:rotate(360deg) scale(2);
  -ms-transform-duration:500ms;
  -ms-transform-timing-function: ease-out;
}

События назначены с помощью свойства -webkit-animation-name. Остальные свойства отвечают за:

  • -webkit-animation-duration — задает время, в течении которого будет происходить анимация — 500мс.
  • -webkit-animation-iteration-count — отвечает за то, чтобы анимация проявлялась только раз.
  • -webkit-animation-timing-function — описывает метод расчета промежуточных значений свойств при анимации — значение easy-out.

Посмотреть демо

Не забывайте, что данное свойство работает пока только в браузерах Google Chrome и Safari.

Рекомендовано использовать эти эффекты с изображениями, у которых заранее заданы размеры, с фоновыми изображениями. Если у вас появились какие-либо мысли относительно такого варианта реализации анимации — поделитесь своими мыслями.



Запись опубликована в рубрике CSS3 с метками , , , , . Добавьте в закладки постоянную ссылку.

3 комментария: Эффект вращения и увеличения с помощью CSS3. Используем keyframes

  1. Уведомление: Эффект вращения и увеличения с помощью CSS3 | Grabr

  2. Lin80 говорит:

    В Хроме не хочет крутить :-/
    Опера поддерживает на ура.

  3. Павел говорит:

    Неплохая статья, только ссылки на демки битые, исправьте!

Добавить комментарий для Павел Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *