我已经回顾了很多演示,并且不知道为什么我不能让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>
答案 0 :(得分:255)
要使用CSS3动画,您还必须定义实际的动画关键帧(,您将其命名为spin
)
阅读https://developer.mozilla.org/en-US/docs/CSS/Tutorials/Using_CSS_animations了解详情
配置动画的时序后,您需要定义动画的外观。这是通过使用
@keyframes
at-rule建立两个或更多关键帧来完成的。每个关键帧描述动画元素在动画序列中的给定时间应如何呈现。
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);}
}
答案 1 :(得分:20)
您尚未指定任何关键帧。 I made it work here
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);}
}
你可以用它来做很多很酷的事情。 Here is one I made earlier
:)
N.B。如果您使用-prefix-free,则可以跳过必须写出所有前缀。
答案 2 :(得分:14)
从最新的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);}
}
答案 3 :(得分:7)
HTML with font-awesome glyphicon。
<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;
}
答案 4 :(得分:3)
要旋转,您可以使用关键帧和变换。
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);
}
}
答案 5 :(得分:3)
为了完成,这里有一个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))
答案 6 :(得分:2)
给出正确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%);
答案 7 :(得分:0)
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
这将使您回答问题
答案 8 :(得分:0)
对于仍然在寻找一些很酷和简单的微调器的人,我们在 fontawesome 网站上有多个微调器示例:https://fontawesome.com/v4.7.0/examples/
您只需使用调试器检查所需的微调器并复制 css 样式。