12

查看 CSS 动画以替换加载轮中的动画 GIF。

这里有一个基本的例子http://jsfiddle.net/kFmY8/448/

#me {
    -webkit-animation: rotation 2s infinite linear;
}

@-webkit-keyframes rotation {
    from {-webkit-transform: rotate(0deg);}
    to   {-webkit-transform: rotate(360deg);}
}

我想更改帧速率,以便每个周期只有 12 帧。这将消除动画的流动性,使其更接近于它所取代的动画 GIF。

这可以做到吗?

4

2 回答 2

28

您想使用steps()缓动功能而不是linear.

http://jsfiddle.net/trolleymusic/uTd3x/

我已将您的动画值更改为:

-webkit-animation: rotation 2s infinite linear;

至:

-webkit-animation: rotation 2s infinite steps(12);

其中steps函数内的数字是将动画分成多少帧。

一点参考:http ://css-tricks.com/snippets/css/keyframe-animation-syntax/ - 大约一半的地方有一个叫做Steps()的部分

于 2013-05-12T18:22:55.950 回答
0

将动画更改为渐变动画,然后使用 CSS 变换旋转属性以 30 度间隔固定每个块。将动画应用于每个动画,但延迟 0.1 秒。

.wheel {
    position:absolute; display:none;
}
.wheel li {
    width:4px; height:11px; position:absolute; -webkit-transform-origin:3px 21px; background:#222; border-radius:4px; list-style:none; display:block; opacity:.25; box-shadow:0 0 1px rgba(255,255,255,0.9);
}
.wheel li:nth-child(1) { -webkit-transform:rotate(30deg); -webkit-animation:fadeshift 1.2s infinite linear 0s; }
.wheel li:nth-child(2) { -webkit-transform:rotate(60deg); -webkit-animation:fadeshift 1.2s infinite linear 0.1s; }
.wheel li:nth-child(3) { -webkit-transform:rotate(90deg); -webkit-animation:fadeshift 1.2s infinite linear 0.2s; }
.wheel li:nth-child(4) { -webkit-transform:rotate(120deg); -webkit-animation:fadeshift 1.2s infinite linear 0.3s; }
.wheel li:nth-child(5) { -webkit-transform:rotate(150deg); -webkit-animation:fadeshift 1.2s infinite linear 0.4s; }
.wheel li:nth-child(6) { -webkit-transform:rotate(180deg); -webkit-animation:fadeshift 1.2s infinite linear 0.5s; }
.wheel li:nth-child(7) { -webkit-transform:rotate(210deg); -webkit-animation:fadeshift 1.2s infinite linear 0.6s; }
.wheel li:nth-child(8) { -webkit-transform:rotate(240deg); -webkit-animation:fadeshift 1.2s infinite linear 0.7s; }
.wheel li:nth-child(9) { -webkit-transform:rotate(270deg); -webkit-animation:fadeshift 1.2s infinite linear 0.8s; }
.wheel li:nth-child(10) { -webkit-transform:rotate(300deg); -webkit-animation:fadeshift 1.2s infinite linear 0.9s; }
.wheel li:nth-child(11) { -webkit-transform:rotate(330deg); -webkit-animation:fadeshift 1.2s infinite linear 1s; }
.wheel li:nth-child(12) { -webkit-transform:rotate(360deg); -webkit-animation:fadeshift 1.2s infinite linear 1.1s; }
@-webkit-keyframes fadeshift { 
    from { opacity:1; } to { opacity:.1; }
}

<div class="appload wheel"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></div>

QED。

于 2013-05-12T12:16:01.820 回答