使用CSS3变换/动画与font-face产生“摇摆”微调gif像

我正在使用带有font-face( twitter bootstrap/font-awesome)的CSS变换/动画来生成一个微调Gif的图标.

问题是,图标摆动360度左右. See this JSFiddle看看我的意思.有谁知道如何使它不摆动?或者至少使它旋转一点更顺利?

以下是以下代码

CSS:

i.icon-repeat {
  -webkit-animation: Rotate 500ms infinite linear;
  -moz-animation: Rotate 500ms infinite linear;
  -ms-animation: Rotate 500ms infinite linear;
  -o-animation: Rotate 500ms infinite linear;
  animation: Rotate 500ms infinite linear;
}
@-o-keyframes Rotate {
  from {-o-transform:rotate(0deg);}
  to {-o-transform:rotate(360deg);}
}
@-moz-keyframes Rotate {
 from {-moz-transform:rotate(0deg);}
 to {-moz-transform:rotate(360deg);}
}
@-ms-keyframes Rotate {
  from {-ms-transform:rotate(0deg);}
  to {-ms-transform:rotate(360deg);}
}
@-webkit-keyframes Rotate {
  from {-webkit-transform:rotate(0deg);}
  to {-webkit-transform:rotate(360deg);}
}
@keyframes Rotate {
  from { transform:rotate(0deg);}
  to { transform:rotate(360deg);}
}
#iconRepeatMain{
  display: inline-block;    
  position: absolute;
  z-index:10007;
  left: 50%;
  top: 50%;
  margin-left: -24px; /* -1 * image width / 2 */
  margin-top: -24px;  /* -1 * image height / 2 */
  font-size:36px;
}​

HTML:

<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.1.1/css/bootstrap.no-icons.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/2.0/css/font-awesome.css" rel="stylesheet">
<i id='iconRepeatMain' class='icon-repeat' style='font-size:36px; color:red'></i>​

注意:如果有人想在您自己的网络应用程序中使用此代码,请确保在需要执行的操作完成后将其从DOM中删除.保持此图标在背景中旋转会烧毁cpu,而不管您不会相信浏览器.另外,简单地切换其可见性,即display:none,不起作用.您需要从DOM中删除它:$(‘#iconRepeatMain’).remove();

解决方法

认情况下,CSS使用属性transform-origin来转换关于它们的垂直和水平中心的事物.此认值的简短语法为50%50%,表示原点的x值和y值.

对于这个图标,我发现将y原点移动到38%可以让它有所改善,但你需要玩弄它来获得精确的值. View on JSFiddle

i.icon-repeat {
  -webkit-transform-origin:50% 38%;
  -moz-transform-origin:50% 38%;
  -ms-transform-origin:50% 38%;
  -o-transform-origin:50% 38%;
  transform-origin: 50% 38%;
}

更多关于变换起始属性,我建议the MDN article on the property.

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效