CSS3 Spin Animation
Я просмотрел довольно много демо и не знаю, почему я не могу заставить CSS3 работать. Я использую последнюю стабильную версию Chrome.
Скрипка:
http://jsfiddle.net/9Ryvs/1/
div {
margin: 20px;
width: 100px;
height: 100px;
background: #f00;
-webkit-animation-name: spin;
-webkit-animation-duration: 40000ms;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-name: spin;
-moz-animation-duration: 40000ms;
-moz-animation-iteration-count: infinite;
-moz-animation-timing-function: linear;
-ms-animation-name: spin;
-ms-animation-duration: 40000ms;
-ms-animation-iteration-count: infinite;
-ms-animation-timing-function: linear;
-o-transition: rotate(3600deg);
}
<div></div>
Ответы
Ответ 1
Чтобы использовать анимацию CSS3, вы также должны определить фактические ключевые кадры анимации (которые вы назвали spin
)
Прочтите https://developer.mozilla.org/en-US/docs/CSS/Tutorials/Using_CSS_animations для получения дополнительной информации
После настройки времени анимации вам необходимо определить внешний вид анимации. Это делается путем установки двух или более ключевых кадров с помощью @keyframes
при правиле. Каждый ключевой кадр описывает, как анимационный элемент должен отображаться в заданное время во время анимационной последовательности.
Демо на http://jsfiddle.net/gaby/9Ryvs/7/
@-moz-keyframes spin {
from { -moz-transform: rotate(0deg); }
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
Ответ 2
Вы не указали никаких ключевых кадров. Я сделал это здесь.
div {
margin: 20px;
width: 100px;
height: 100px;
background: #f00;
-webkit-animation: spin 4s infinite linear;
}
@-webkit-keyframes spin {
0% {-webkit-transform: rotate(0deg);}
100% {-webkit-transform: rotate(360deg);}
}
На самом деле вы можете сделать много действительно классных вещей. Вот один, который я сделал ранее.
:)
NB. Вы можете пропустить, чтобы записать все префиксы, если вы используете - без префикса.
Ответ 3
Как и в случае с последними версиями Chrome/FF и IE11, нет необходимости в префиксе -ms/-moz/-webkit.
Здесь более короткий код (на основе предыдущих ответов):
div {
margin: 20px;
width: 100px;
height: 100px;
background: #f00;
/* The animation part: */
animation-name: spin;
animation-duration: 4000ms;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
Live Demo: http://jsfiddle.net/9Ryvs/3057/
Ответ 4
HTML-код с удивительным шрифтом.
<span class="fa fa-spinner spin"></span>
CSS
@-moz-keyframes spin {
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
to {transform:rotate(360deg);}
}
.spin {
animation: spin 1000ms linear infinite;
}
Ответ 5
Чтобы повернуть, вы можете использовать ключевые кадры и преобразование.
div {
margin: 20px;
width: 100px;
height: 100px;
background: #f00;
-webkit-animation-name: spin;
-webkit-animation-duration: 40000ms;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-name: spin;
-moz-animation-duration: 40000ms;
-moz-animation-iteration-count: infinite;
-moz-animation-timing-function: linear;
-ms-animation-name: spin;
-ms-animation-duration: 40000ms;
-ms-animation-iteration-count: infinite;
-ms-animation-timing-function: linear;
}
@-webkit-keyframes spin {
from {
-webkit-transform:rotate(0deg);
}
to {
-webkit-transform:rotate(360deg);
}
}
Пример
Ответ 6
Для того, чтобы закончить, здесь пример Sass/Compass, который действительно сокращает код, скомпилированный CSS будет содержать необходимые префиксы и т.д.
div
margin: 20px
width: 100px
height: 100px
background: #f00
+animation(spin 40000ms infinite linear)
+keyframes(spin)
from
+transform(rotate(0deg))
to
+transform(rotate(360deg))
Ответ 7
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
это заставит вас ответить на вопрос
Ответ 8
Единственный ответ, который дает правильный 359 градусов:
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(359deg); }
}
&.active {
animation: spin 1s linear infinite;
}
Вот полезный градиент, чтобы вы могли доказать, что он вращается (если это круг):
background: linear-gradient(to bottom, #000000 0%,#ffffff 100%);