在悬停

时间:2015-12-20 07:46:11

标签: javascript jquery html css font-awesome

我正在尝试在悬停时旋转字体真棒刷新图标。

这是正常版本:
<i class="fa fa-refresh"></i>

这是旋转版本:
 <i class="fa fa-refresh fa-spin"></i>

我只想在悬停时旋转图标。

这是失败的:fiddle

&#13;
&#13;
.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;
&#13;
&#13;

3 个答案:

答案 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>

演示:http://jsfiddle.net/uevfyghr/1/

答案 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,等等。)

在代码中,这转换为

&#13;
&#13;
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;
&#13;
&#13;