CSS3旋转动画
我已经看过很多演示,不知道为什么我不能让CSS3自旋正常工作。我使用的是最新稳定的Chrome版本 小提琴:CSS3旋转动画,css,css-animations,Css,Css Animations,我已经看过很多演示,不知道为什么我不能让CSS3自旋正常工作。我使用的是最新稳定的Chrome版本 小提琴: div{ 利润率:20px; 宽度:100px; 高度:100px; 背景:#f00; -webkit动画名称:spin; -webkit动画持续时间:40000ms; -webkit动画迭代计数:无限; -webkit动画计时功能:线性; -moz动画名称:spin; -moz动画持续时间:40000ms; -moz动画迭代次数:无限; -moz动画计时功能:线性; -ms动画名称
div{
利润率:20px;
宽度:100px;
高度:100px;
背景:#f00;
-webkit动画名称:spin;
-webkit动画持续时间:40000ms;
-webkit动画迭代计数:无限;
-webkit动画计时功能:线性;
-moz动画名称:spin;
-moz动画持续时间:40000ms;
-moz动画迭代次数:无限;
-moz动画计时功能:线性;
-ms动画名称:旋转;
-ms动画持续时间:40000ms;
-ms动画迭代次数:无限;
-ms动画计时功能:线性;
-o型过渡:旋转(3600度);
}
您尚未指定任何关键帧
你可以用这个做很多很酷的事情
:)
N.B.如果使用,您可以不用写出所有前缀。要旋转,可以使用关键帧和变换
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);
}
}
要使用CSS3动画,还必须定义实际的动画关键帧(您将其命名为
spin
)
阅读更多信息
配置动画计时后,需要定义动画的外观。这是通过使用at规则建立两个或多个关键帧来实现的。每个关键帧描述动画元素在动画序列中给定时间的渲染方式
演示:
div{
利润率:20px;
宽度:100px;
高度:100px;
背景:#f00;
-webkit动画名称:spin;
-webkit动画持续时间:4000ms;
-webkit动画迭代计数:无限;
-webkit动画计时功能:线性;
-moz动画名称:spin;
-moz动画持续时间:4000ms;
-moz动画迭代次数:无限;
-moz动画计时功能:线性;
-ms动画名称:旋转;
-ms动画持续时间:4000ms;
-ms动画迭代次数:无限;
-ms动画计时功能:线性;
动画名称:旋转;
动画持续时间:4000ms;
动画迭代次数:无限;
动画计时功能:线性;
}
@-ms关键帧旋转{
从{-ms变换:旋转(0度);}
到{-ms变换:旋转(360度);}
}
@-moz关键帧旋转{
从{moz变换:旋转(0度);}
到{moz变换:旋转(360度);}
}
@-webkit关键帧旋转{
从{-webkit变换:旋转(0度);}
到{-webkit变换:旋转(360度);}
}
@关键帧旋转{
从{
变换:旋转(0度);
}
到{
变换:旋转(360度);
}
}
从最新的Chrome/FF开始,在IE11上不需要-ms/-moz/-webkit前缀。
下面是一个较短的代码(基于前面的答案):
现场演示:为了完整起见,这里有一个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))
带有字体图标的HTML
<span class="fa fa-spinner spin"></span>
这将使您能够回答问题唯一给出正确359度的答案:
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(359deg); }
}
&.active {
animation: spin 1s linear infinite;
}
这里有一个有用的梯度,你可以证明它在旋转(如果它是一个圆):
对于那些仍然在搜索一些酷而简单的spinner的人,我们在fontawesome网站上提供了多个spinner示例:
您只需使用调试器检查所需的微调器并复制css样式。您就可以获得✓ 因为你解释得最好,而且你是唯一一个包含所有前缀版本的答案。这非常挑剔,但你真的应该将其动画设置为359度。360度和0度在径向上是相同的,所以动画会在整圈时短暂暂停。@AdamGrant谢谢,今天,这几乎让我头疼,因为你想将动画设置为359.99999999度,而不是359度。旋转度是一个连续的旋转范围[0,360)如果旋转到359.0,当旋转从359扭曲到0时,在每次旋转的开始处都会有一个1度的记号。为了澄清所有这些给出错误信息的评论…所选答案是正确的,没有修改。0和360度在浏览器眼中实际上是不同的,但仍然是相同的点。F或者,如果尝试将其从0度旋转到0度(或从360度旋转到360度),则为示例,它根本不会旋转。将其从0度旋转到360度会告诉浏览器在完成动画之前将对象旋转360度。设置
动画迭代计数:无限;
,动画中将有无限帧。即使是20分钟的旋转也会看起来完美平滑。您还可以获得我对添加def的赞成票.spin的初始化将动画规则与速记结合起来动画:spin 4s linear infinite
。这似乎只是重复。
<span class="fa fa-spinner spin"></span>
@-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;
}
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
@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%);