Логотип schoolsw3.com
Учебники Справочники Упражнения КАК? Меню
Создать
Редактор Поддержка Форум

×
Учебники
Справочники
Упражнения
Пожертвовать Обновление Реклама Видео Магазин

CSS Учебник

CSS Главная CSS Введение CSS Синтаксис CSS Селекторы CSS Подключение CSS Комментарии CSS Цвет CSS Фон CSS Границы CSS Поля CSS Отступы внутри CSS Высота и ширина CSS Бокс модель CSS Контур CSS Текст CSS Шрифты CSS Иконки CSS Ссылки CSS Списки CSS Таблицы CSS Дисплей CSS Макс. ширина CSS Позиционирование CSS Перекрытие CSS Переполнение CSS Поплавок CSS Линейный блок CSS Выравнивание CSS Комбинаторы CSS Псевдоклассы CSS Псевдоэлементы CSS Прозрачность CSS Навигация сайта CSS Выпадающие списки CSS Галерея изображений CSS Спрайты изображений CSS Атрибут селектора CSS Формы CSS Счетчики CSS Макет сайта CSS Единицы измерений CSS Особенности CSS !important CSS Математ. функции

CSS3 Учебник

CSS3 Закругленные углы CSS3 Изображен. граница CSS3 Слои фона изображ. CSS3 Цвета CSS Ключевые сл. цвета CSS3 Градиент CSS3 Тени CSS3 Эффект текста CSS3 Веб шрифты CSS3 2D Трансформация CSS3 3D Трансформация CSS3 Переход CSS3 Анимация CSS3 Всплыв. подсказки CSS3 Стиль изображения CSS3 Отраж. изображения CSS3 Объект-подгонка CSS3 Объект-позиция CSS3 Маскировка CSS3 Кнопки CSS3 Пагинация CSS3 Несколько столбцов CSS3 Интерфейс CSS3 Переменные CSS3 Размеры боксов CSS3 Медиа запросы CSS3 Медиа примеры CSS3 Флексбокс

CSS Адаптивный

АВД-Введение АВД-Область просмотра АВД-Вид сетка АВД-Медиа запросы АВД-Изображения АВД-Видео АВД-Фреймворк АВД-Шаблоны

CSS Сетка

Сетка Введение Сетка Контейнер Сетка Пункт

CSS Примеры

CSS Макеты CSS Примеры кода CSS Онлайн редактор CSS Фрагменты кода CSS Тест-викторина CSS Упражнения CSS Сертификат

CSS Справочники

CSS Справочник CSS Селекторы CSS Функции CSS Звук CSS Веб Шрифты CSS Анимации CSS Длины CSS PX-EM Конвертер CSS Цвета CSS Значение Цвета CSS по Умолчанию CSS Символы CSS Поддержка

CSS Анимация



CSS Анимации

CSS позволяет анимировать HTML-элементы без использования JavaScript или Flash!

CSS

В этой главе вы узнаете о следующих свойствах:

  • @keyframes
  • animation-name
  • animation-duration
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • animation-timing-function
  • animation-fill-mode
  • animation

Поддержка браузером анимации

Цифры в таблице указывают первую версию браузера, которая полностью поддерживает это свойство.

Свойство
@keyframes 43.0 10.0 16.0 9.0 30.0
animation-name 43.0 10.0 16.0 9.0 30.0
animation-duration 43.0 10.0 16.0 9.0 30.0
animation-delay 43.0 10.0 16.0 9.0 30.0
animation-iteration-count 43.0 10.0 16.0 9.0 30.0
animation-direction 43.0 10.0 16.0 9.0 30.0
animation-timing-function 43.0 10.0 16.0 9.0 30.0
animation-fill-mode 43.0 10.0 16.0 9.0 30.0
animation 43.0 10.0 16.0 9.0 30.0

Что такое CSS3 анимация?

Анимация позволяет элементу постепенно переходить из одного стиля в другой.

Вы можете изменить, много свойств CSS, которые вы хотите изменить, много раз, сколько вы хотите.

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

Ключевые кадры содержат стили элементов, которые будут иметь в определенное время.


Правило @keyframes

При указании стилей CSS3 внутри правила @keyframes, анимация будет постепенно меняться от текущего стиля к новому стилю в определенное время.

Чтобы заставить анимацию работать, необходимо привязать анимацию к элементу.

Следующий пример связывает "example" анимацию с элементом <div>. Анимация будет длиться 4 секунды, и она будет постепенно менять цвет фона элемента <div> с "red" на "yellow":

Пример
/* Код анимации */
@keyframes example {
    from {background-color: red;}
    to {background-color: yellow;}
}

/* Элемент, к которому применяется анимация */
div {
    width: 100px;
    height: 100px;
    background-color: red;
   animation-name: example;
    animation-duration: 4s;
}
Попробуйте сами »

Примечание: Свойство animation-duration определяет, сколько времени должна занимать анимация. Если свойство animation-duration не указано, анимации не будет, потому что значение по умолчанию - 0 секунд.

В приведенном выше примере мы указали, когда стиль изменится с помощью ключевых слов "from" и "to" (что составляет 0% (начало) и 100% (в полном объеме)).

Также можно использовать проценты. С помощью процентов можно добавить, сколько изменить стилей, как вам нравится.

Следующий пример изменит цвет фона элемента <div>, когда анимация завершена на 25%, завершена на 50%, и снова, когда анимация завершена на 100%:

Пример
/* Код анимации */
@keyframes example {
    0%   {background-color: red;}
    25%  {background-color: yellow;}
    50%  {background-color: blue;}
    100% {background-color: green;}
}

/* Элемент, к которому применяется анимация */
div {
    width: 100px;
    height: 100px;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
}
Попробуйте сами »

В следующем примере будут изменены цвет фона и положение элемента <div>, когда анимация завершена на 25%, завершена на 50%,и снова, когда анимация завершена на 100%:

Пример
/* Код анимации */
@keyframes example {
    0%   {background-color:red; left:0px; top:0px;}
    25%  {background-color:yellow; left:200px; top:0px;}
    50%  {background-color:blue; left:200px; top:200px;}
    75%  {background-color:green; left:0px; top:200px;}
    100% {background-color:red; left:0px; top:0px;}
}

/* The element to apply the animation to */
div {
    width: 100px;
    height: 100px;
    position: relative;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
}
Попробуйте сами »


Задержка анимации

Свойство animation-delay указывает задержку запуска анимации.

В следующем примере задержка запуска анимации составляет 2 секунды:

Пример
div {
    width: 100px;
    height: 100px;
    position: relative;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
    animation-delay: 2s;
}
Попробуйте сами »

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

В следующем примере анимация начнется так, как если бы она уже была в движении, в течение 2 секунд:

Пример
div {
    width: 100px;
    height: 100px;
    position: relative;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
    animation-delay: -2s;
}
Попробуйте сами »

Указать, сколько раз должна запускаться анимация

Свойство animation-iteration-count указывает количество запусков анимации.

В следующем примере анимация запускается 3 раза до остановки:

Пример
div {
    width: 100px;
    height: 100px;
    position: relative;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
    animation-iteration-count: 3;
}
Попробуйте сами »

В следующем примере используется значение "infinite", чтобы анимация продолжалась вечно:

Пример
div {
    width: 100px;
    height: 100px;
    position: relative;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
    animation-iteration-count: infinite;
}
Попробуйте сами »

Запуск анимации в обратном направлении или поочередно

Свойство animation-direction определяет должна ли анимация воспроизводиться вперед, назад или поочередными циклами.

Свойство animation-direction может иметь следующие значения:

  • normal - Анимация воспроизводится в обычном режиме (вперед.) Это по умолчанию
  • reverse - Анимация воспроизводится в обратном направлении (назад.)
  • alternate - Анимации сначала вперед, затем назад
  • alternate-reverse - Анимации сначала назад, затем вперед

В следующем примере анимация выполняется в обратном направлении (назад):

Пример
div {
    width: 100px;
    height: 100px;
    position: relative;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
    animation-direction: reverse;
}
Попробуйте сами »

Следующий пример использует значение alternate , чтобы сделать анимацию сначала движение вперед, затем назад:

Пример
div {
    width: 100px;
    height: 100px;
    position: relative;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
    animation-iteration-count: 2;
    animation-direction: alternate;
}
Попробуйте сами »

Следующий пример использует значение alternate-reverse, чтобы сделать анимацию сначала движение назад, затем вперед:

Пример
div {
    width: 100px;
    height: 100px;
    position: relative;
    background-color: red;
    animation-name: example;
    animation-duration: 4s;
    animation-iteration-count: 2;
    animation-direction: alternate-reverse;
}
Попробуйте сами »

Указать скорость движение анимации

Свойство animation-timing-function определяет движение скорости анимации.

свойство animation-timing-function может иметь следующие значения:

  • ease - Задает анимацию с медленным запуском, затем быстрее, затем медленно завершается (по умолчанию)
  • linear - Задает анимацию с одинаковой скоростью от начала до конца
  • ease-in - Задает анимацию с медленным запуском
  • ease-out - Определяет анимацию с медленным концом
  • ease-in-out - Задает анимацию с медленным началом и концом
  • cubic-bezier(n,n,n,n) - Позволяет определить собственные значения в функции cubic-bezier

В следующем примере показаны некоторые из различных движений скорости, которые можно использовать:

Пример
#div1 {animation-timing-function: linear;}
#div2 {animation-timing-function: ease;}
#div3 {animation-timing-function: ease-in;}
#div4 {animation-timing-function: ease-out;}
#div5 {animation-timing-function: ease-in-out;}
Попробуйте сами »

Указать режим заливки анимации

CSS3 анимации не влияют на элемент до первого кадра движения или после последнего ключевого кадра. Свойство animation-fill-mode может переопределить это поведение.

Свойство animation-fill-mode задает стиль целевого элемента, когда анимация не воспроизводится (до ее начала, после того, как она заканчивается, или вместе).

Свойство animation-fill-mode может иметь следующие значения:

  • none - Значение по умолчанию. Анимации не будет применять любые стили к элементу до или после его выполнения
  • forwards - Элемент сохранит значения стиля, заданные последним ключевым кадром (зависит от направления анимации и количества итераций анимации).
  • backwards - Элемент получит стиль значения, заданные первым ключевым кадром (зависит от направления анимации), и сохранить в течение периода задержки анимации
  • both - Анимация будет следовать правилам как вперед, так и назад, расширяя свойства анимации в обоих ремарках

Следующий пример позволяет элементу <div> сохранить значения стиля последнего кадра после окончания анимации:

Пример
div {
    width: 100px;
    height: 100px;
    background: red;
    position: relative;
    animation-name: example;
    animation-duration: 3s;
    animation-fill-mode: forwards;
}
Попробуйте сами »

В следующем примере элемент<div> получает значения стиля, заданным параметром первого кадра перед началом анимации (в период задержки анимации):

Пример
div {
    width: 100px;
    height: 100px;
    background: red;
    position: relative;
    animation-name: example;
    animation-duration: 3s;
    animation-delay: 2s;
    animation-fill-mode: backwards;
}
Попробуйте сами »

В следующем примере элемент <div> получает набор значений стиля по первому ключевому кадру перед началом анимации и сохранить значения стиля от последнего ключевого кадра, когда заканчивается анимация:

Пример
div {
    width: 100px;
    height: 100px;
    background: red;
    position: relative;
    animation-name: example;
    animation-duration: 3s;
    animation-delay: 2s;
    animation-fill-mode: both;
}
Попробуйте сами »

Сокращение свойств анимации

В приведенном ниже примере используются шесть свойств анимации:

Пример
div {
    animation-name: example;
    animation-duration: 5s;
    animation-timing-function: linear;
    animation-delay: 2s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
}
Попробуйте сами »

Тот же эффект анимации, что и выше, может быть достигнут с помощью сокращения свойств animation:

Пример
div {
    animation: example 5s linear 2s infinite alternate;
}
Попробуйте сами »

CSS3 Упражнения

Проверьте себя с помощью упражнений

Упражнение:

Добавьте 2-секундную анимацию для элемента <div>, который меняет цвет с красного на синий. Назовите анимацию "example".

<style>
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: ;
  : 2s;
}

@keyframes example {
  from {: red;}
  to {: blue;}
}
</style>

<body>
  <div>Это div</div>
</body>


CSS3 Свойства Анимации

В следующей таблице перечислены правила @keyframes и все свойства анимации CSS3:

Свойство Описание
@keyframes Задает код анимации
animation Сокращенное свойство для установки всех свойств анимации
animation-delay Задает задержку запуска анимации
animation-direction Указывает, должна ли анимация воспроизводиться вперед, назад или в других циклах
animation-duration Определяет, сколько времени анимация должна занять для завершения одного цикла
animation-fill-mode Задает стиль для элемента, когда анимация не воспроизводится (с начала, после окончания или оба)
animation-iteration-count Указывает, сколько раз анимация должна воспроизводиться
animation-name Задает имя анимации @keyframes
animation-play-state Указывает, запущена или приостановлена анимация
animation-timing-function Задает скорость движения анимации