gpt4 book ai didi

Mozilla Firefox 30.0 上的 CSS3 关键帧过渡动画 CPU 使用率高

转载 作者:行者123 更新时间:2023-11-28 12:14:50 25 4
gpt4 key购买 nike

这是一个简单的过渡动画,你可以在这里试试:http://jsfiddle.net/fFje2/1/

HTML

<body>
<div class="container">
<div class="rect"></div>
<div class="circ"></div>
</div>
</body>

CSS

/*normal*/
@-webkit-keyframes ANIM{
0%{-webkit-transform: rotate(360deg) translateX(50px) rotate(90deg)}
50%{-webkit-transform: rotate(0deg) translateX(50px) rotate(90deg)}
100%{-webkit-transform: rotate(360deg) translateX(50px) rotate(90deg)}
}
@-moz-keyframes ANIM{
0%{-moz-transform: rotate(360deg) translateX(50px) rotate(90deg)}
50%{-moz-transform: rotate(0deg) translateX(50px) rotate(90deg)}
100%{-moz-transform: rotate(360deg) translateX(50px) rotate(90deg)}
}
@-o-keyframes ANIM{
0%{-o-transform: rotate(360deg) translateX(50px) rotate(90deg)}
50%{-o-transform: rotate(0deg) translateX(50px) rotate(90deg)}
100%{-o-transform: rotate(360deg) translateX(50px) rotate(90deg)}
}
@-ms-keyframes ANIM{
0%{-ms-transform: rotate(360deg) translateX(50px) rotate(90deg)}
50%{-ms-transform: rotate(0deg) translateX(50px) rotate(90deg)}
100%{-ms-transform: rotate(360deg) translateX(50px) rotate(90deg)}
}
@keyframes ANIM{
0%{transform: rotate(360deg) translateX(50px) rotate(90deg)}
50%{transform: rotate(0deg) translateX(50px) rotate(90deg)}
100%{transform: rotate(360deg) translateX(50px) rotate(90deg)}
}
/*invert*/
@-webkit-keyframes ANIM2{
0%{-webkit-transform: rotate(0deg) translateX(60px) rotate(90deg)}
50%{-webkit-transform: rotate(360deg) translateX(60px) rotate(90deg)}
100%{-webkit-transform: rotate(0deg) translateX(60px) rotate(90deg)}
}
@-moz-keyframes ANIM2{
0%{-moz-transform: rotate(0deg) translateX(60px) rotate(90deg)}
50%{-moz-transform: rotate(360deg) translateX(60px) rotate(90deg)}
100%{-moz-transform: rotate(0deg) translateX(60px) rotate(90deg)}
}
@-o-keyframes ANIM2{
0%{-o-transform: rotate(0deg) translateX(60px) rotate(90deg)}
50%{-o-transform: rotate(360deg) translateX(60px) rotate(90deg)}
100%{-o-transform: rotate(0deg) translateX(60px) rotate(90deg)}
}
@-ms-keyframes ANIM2{
0%{-ms-transform: rotate(0deg) translateX(60px) rotate(90deg)}
50%{-ms-transform: rotate(360deg) translateX(60px) rotate(90deg)}
100%{-ms-transform: rotate(0deg) translateX(60px) rotate(90deg)}
}
@keyframes ANIM2{
0%{transform: rotate(0deg) translateX(60px) rotate(90deg)}
50%{transform: rotate(360deg) translateX(60px) rotate(90deg)}
100%{transform: rotate(0deg) translateX(60px) rotate(90deg)}
}

.container{
width: 50px;
height: 50px;
position: relative;
margin: 0 auto;
background: #f00;
}
.rect{
position: absolute;
left: 15px;
top: 15px;
width: 20px;
height: 20px;
background: #0f0;

-webkit-animation: ANIM 5s linear infinite;
-moz-animation: ANIM 5s linear infinite;
-o-animation: ANIM 5s linear infinite;
-ms-animation: ANIM 5s linear infinite;
animation: ANIM 5s linear infinite;
}
.circ{
position: absolute;
left: 15px;
top: 15px;
width: 20px;
height: 20px;
background: #00f;
border-radius: 50%;

-webkit-animation: ANIM2 10s linear infinite;
-moz-animation: ANIM2 10s linear infinite;
-o-animation: ANIM2 10s linear infinite;
-ms-animation: ANIM2 10s linear infinite;
animation: ANIM2 10s linear infinite;
}

大多数浏览器都使用硬件加速来处理图形,但是,Mozilla Firefox 30.0 将此页面的 CPU 使用率提高到 ~40%-50%。

我们已经在 Opera、Safari、Chrome 甚至 IE 上尝试过,它在所有这些平台上都运行良好,除了 FF,其中进程负载非常高。多台计算机,多个浏览器,都一样:只有 FF 变慢了。

是否有任何解决方法可以使其更加优化?甚至尝试使用 translateZ(0)rotate3d(0,0,1,...) 但似乎什么也没有发生。

感谢任何帮助。

最佳答案

您可以感谢 Mozilla。在@keyframes 在所有主流浏览器中以一种标准语法出现之前,这个问题就会发生。据我所知,没有解决方法(至少可以降低 CPU 使用率)。

关于Mozilla Firefox 30.0 上的 CSS3 关键帧过渡动画 CPU 使用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24627066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com