【发布时间】:2015-11-23 15:03:10
【问题描述】:
我有一个在用户机器上相当密集的 CSS 动画(特别是我的 macbook 在 5 分钟内无限运行动画时让粉丝疯狂地旋转)。我怀疑这是因为浏览器每次重绘浏览器都会更新hue-rotate过滤器(在整个页面背景上),这会显着减慢速度。
这是有问题的动画:
@keyframes rotatehue {
0% {
filter: hue-rotate(100deg);
}
63% {
filter: hue-rotate(360deg);
}
100% {
filter: hue-rotate(100deg);
}
}
这里是使用的动画属性:
animation: rotatehue 300s linear infinite;
有没有什么办法,因为它是一个不需要每帧之间分钟变化的长动画,说“仅每 0.5 秒更新一次这个动画”左右?
【问题讨论】:
-
对不起,我不明白这个问题。你能解释得更好吗?
-
据我所知,每次重绘浏览器都会更新 CSS 动画(就像在 javascript 中使用 requestAnimationFrame 时一样)。我想知道,因为过滤器是一种计算成本高昂的动画,以从本质上降低动画帧速率,因此在播放动画时它不会减慢浏览器的速度
-
我不认为你可以这样做,也许我错了......但是,尝试通过设置
-webkit-transform:translate3d(0,0,0)为元素激活硬件加速 -
啊,那很不幸,感谢您的回答@Skatch 不幸的是,这并没有解决手头的问题,但我想这是不可能的。