CSS3. Анимация. Animations

Очень полезное свойство animation (анимация) позволяет получать интересные визуальные анимационные эффекты самым естественным путем, чисто через CSS, без таких технологий как JavaScript, Java, Flash. Это свойство похоже на свойство transitions (преобразования),  с методической точки зрения, лучше сначало изучить свойство transitions (преобразования), а затем уже переходить к изучению свойства animation (анимация).

Изучение свойства animation (анимация) начнем с небольшого практического примера под названием “Вечный двигатель”.

Вечный двигатель…

Для создания анимации в CSS3 необходимо использовать правило @keyframes.

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

В примере выше меняется цвет фона и положение объекта.

Теперь затронем теорию вопроса.

Таблица свойств CSS 3. Cвойство animation (анимация).
NNСвойствоГугл ХромFireFoxIESafariOpera
3@keyframes-webkit-1610-webkit-12.1
4animation-webkit-1610-webkit-12.1
5animation-name-webkit-1610-webkit-12.1
6animation-duration-webkit-1610-webkit-12.1
7animation-timing-function-webkit-1610-webkit-12.1
8animation-delay-webkit-1610-webkit-12.1
9animation-iteration-count-webkit-1610-webkit-12.1
10animation-direction-webkit-1610-webkit-12.1
11animation-play-state-webkit-1610-webkit-12.1

В таблице ниже представлены описания всех свойств, относящихся к animation (анимация).

Свойства, относящиеся к animation (анимация).
NNСвойствоОписание
1@keyframesСпецификация анимации.
2animation-nameОпределяет имя анимации в правиле @keyframes.
3animation-durationОпределяет продолжительность анимации в секундах или миллисекундах. По умолчанию 0.
4animation-timing-functionОпределяет каким способом будет проведен один цикл анимации. По умолчанию “ease”.
5animation-delayОпределяет задержку перед стартом анимации в секундах. По умолчанию 0.
6animation-iteration-countОпределяет количество анимационных прогонов. По умолчанию 1.
7animation-directionОпределяет, должна ли анимация проходить в обратном порядке. По умолчанию “normal”.
8animation-play-stateОпределяет состояние анимации (“running”, “paused”). По умолчанию “running”.

Для получения анимации необходимо сделать привязку, определив по меньшей мере два анимационных свойства:

  • Определить имя анимации.
  • Определить продолжительность анимации.

Анимация – это эффект, который позволяет объекту постепенно менять стиль с одного на другой.

Можно менять сколько угодно стилей, сколько угодно раз.

Определить, когда изменения должны произойти можно с помощью значений в процентах или используя ключевые слова “from” и “to”, что является синонимами для 0% и 100% соответственно.

0% – это начало анимации, 100% – когда анимация заканчивается.

Гораздо лучше использовать селекторы 0% и 100% (а не “from” и “to”), т.к. браузеры лучше понимают именно формат 0% и 100%.

Рассмотрим классы объекта, чтобы совсем все стало понятно.

.sample_052 {
	width:200px;
	height:50px;
	background:red;
	position:relative;
	animation-name:for_sample_052;
	animation-duration:12s;
	animation-timing-function:linear;
	animation-delay:2s;
	animation-iteration-count:infinite;
/*	animation-direction:alternate; */
	animation-play-state:running;
	/* Safari and Chrome: */
	-webkit-animation-name:for_sample_052;
	-webkit-animation-duration:5s;
	-webkit-animation-timing-function:linear;
	-webkit-animation-delay:2s;
	-webkit-animation-iteration-count:infinite;
/*	-webkit-animation-direction:alternate; */
	-webkit-animation-play-state:running;
	opacity:0.8;
	padding:10px;
	margin:10px;
	text-align:center;
	border:3px solid #B7F777; 
	border-radius:10px;
	box-shadow: 6px 7px 5px #979797;
	
}

Правило @keyframes определено так:

@keyframes for_sample_052 {
	0%  {background:red; color:yellow; left:0px; top:0px;}
	40%  {background:yellow; color:blue; left:500px; top:0px;}
	50%  {background:blue; color:green; left:500px; top:100px;}
	90%  {background:green; color:red; left:0px; top:100px;}
	100% {background:red; color:black; left:0px; top:0px;}
}

@-webkit-keyframes for_sample_052 /* Safari and Chrome */ {
	0%  {background:red; color:yellow; left:0px; top:0px;}
	40%  {background:yellow; color:blue; left:500px; top:0px;}
	50%  {background:blue; color:green; left:500px; top:100px;}
	90%  {background:green; color:red; left:0px; top:100px;}
	100% {background:red; color:black; left:0px; top:0px;}
}

Практическое применение возможности анимации без программирования на JavaScript и др. технологиях разумно при публикации рекламных объявлений.
Источник

Добавить комментарий

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.