我正在尝试在悬停时旋转字体真棒刷新图标。
这是正常版本:
<i class="fa fa-refresh"></i>
这是旋转版本:
<i class="fa fa-refresh fa-spin"></i>
我只想在悬停时旋转图标。
这是失败的:fiddle
.fa-spin-hover:hover {
-webkit-animation: spin 2s;
-moz-animation: spin 2s;
-o-animation: spin 2s;
animation: spin 2s;
}
&#13;
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet"/>
<i class="fa fa-refresh fa-2x fa-spin-hover"></i>
&#13;
答案 0 :(得分:4)
您需要定义fa-spin
关键帧。
CSS:
.fa-spin-hover:hover {
animation: fa-spin 2s infinite linear;
}
// The animation bellow is taken from font-awesome.css
@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transfo rm:rotate(359deg);transform:rotate(359deg)}}
HTML
<i class="fa fa-refresh fa-2x fa-spin-hover"></i>
答案 1 :(得分:3)
您可以在悬停时不时暂停动画。
.fa-spin-hover:not(:hover) {
animation: none;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet"/>
<i class="fa fa-refresh fa-2x fa-spin fa-spin-hover"></i>
答案 2 :(得分:1)
为了使用CSS3的动画,您需要定义与动画的起始位置和结束位置(旋转)对应的动画关键帧。您可以在Mozilla's Developer Handbook了解更多信息。
在这种情况下,您希望起始关键帧为0度(在CSS中为go2()
,或更一般地,在0deg
处,其中ndeg
是以度为单位的旋转)结束关键帧可以达到你想要的任何程度(例如n
顺时针旋转1x,360deg
顺时针旋转2x,等等。)
在代码中,这转换为
720deg
&#13;
.fa-spin-hover:hover {
-webkit-animation: spin 2s;
-moz-animation: spin 2s;
-o-animation: spin 2s;
animation: spin 2s;
}
@-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);}
}
&#13;