javascript - 连续旋转动画使用css3还是js?

标签 javascript jquery animation css

我在动画中有一些对象,它们使用 css3 不断地来回旋转。为此,我创建了一个声明,如下所示:

@-webkit-keyframes wiggle {
0% {-webkit-transform:rotate(12deg);}
50% {-webkit-transform:rotate(-6deg);}
100% {-webkit-transform:rotate(12deg);}
}

我想使用它的每个对象都执行以下操作:

.p4, .p5, .p6 {
-webkit-animation-name: wiggle; 
-webkit-animation-iteration-count: infinite; 
-webkit-animation-timing-function: ease-in-out;
}

因为我想在每个对象之间有一些随机性,所以我有以下改变动画持续时间:

.p4 {
-webkit-animation-duration: 5s; 
}

.p5 {
-webkit-animation-duration: 7s; 
}

.p6 {
-webkit-animation-duration: 8s; 
}

等等……

这工作正常 - (目前仅在 Chrome 中进行测试)。但它似乎不是很理想。

我想知道是否有更快的方法来实现这一点。或者更精简的方式。我相信我可以用 JS 执行此操作,但我不确定最终用户资源上的内容会更轻量级。

有没有更好的方法可以用更少的资源实现这种基本动画 - 如果有,怎么做?

除此之外,如果我使用 jquery 创建相同的动画,我如何实际测试所需的内存使用量?我最近发现了一些东西来测试选项卡的内存使用情况,但结果似乎不一致。即有时 1 个选项卡比另一个使用更多内存,反之亦然,即使代码保持不变。

感谢您的指点。

最佳答案

坚持使用 CSS3 动画,如果它们按预期工作,如果需要,在 JS 中做一些事情作为不支持浏览器的后备。

用 JS 替换 CSS3 并不是真的更精简或资源占用更少,恰恰相反,因为 CSS3 似乎具有更流畅的动画,并且在某些浏览器中将使用硬件加速和 GPU,这是 JS 无法实现的(至少不容易) .

总而言之,您最终会用 JS 编写更多内容,并且可能还会使用库或插件来制作旋转动画。在大多数浏览器中它会不太流畅,并且使用更多资源以及 JS 必须每秒多次设置 css tranform 值以获得稍微流畅的动画。

关于javascript - 连续旋转动画使用css3还是js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10609895/

相关文章:

javascript - 谷歌气泡图 : how to use explorer + animation

css - 纯 CSS slider 动画

javascript - 点击图片播放声音 PHONEGAP

javascript - 即使断言在柏树中失败,测试仍然成功

javascript - 基本 onclick javascript jquery 代码到 Vue

jquery - 如何使用 jQuery 选择第一次出现的每个具有特定属性唯一值的复选框?

iphone - [self.tableView endUpdates] 结束后调用方法

javascript - Bootstrap : How to prevent modal dialog stacking on top of open modal

javascript - 创建 Accordion 选项卡并动态添加 ID 和链接以锚定到 jQuery 中的 ID

javascript - 显示函数不适用于 :before