我最近读过很多关于为GPU性能优化CSS和JavaScript/jQuery的文章,特别是在移动设备上,特别是在CSS动画变化对网站性能有不利影响的情况下。
我做了一些测试,只是无法判断我的代码是否经过了正确的性能优化。
基本转换动画用于max-height或position属性。
我已经整理了一个简单的代码,试图展示我在做什么和我想要实现什么。http://codepen.io/onebitrocket/pen/jFrtf
我已经检查了chrome的性能时间表,但我不确定结果是否与优化的CSS和jQuery预期的一样。
如果使用JavaScript和classList.toggle而不是演示中的jQuery,jQuery是否会阻止CSS动画的优化,我会看到更好的性能吗?
我还看到了几个画图事件,图层将其作为文档的根。
谢谢
发布于 2014-03-17 16:16:52
它被优化了。你正在使用3d转换来进行翻译,这是快速的。当顶部框移动时,链接上的暂停是由于颜色和下划线的变化造成的。盒子的移动发生在GPU上,不应该影响其他任何东西。
然而,动画width或height属性是另一回事。这些都是layout属性,因此,当它们更改时,页面的布局会发生变化,需要重新绘制。在你的例子中,盒子后面没有任何东西,但是如果你放了更多的元素,当你将盒子大小动画的时候,它们会上下移动。
CSS中的属性可分为三组:
当然,每个浏览器都是不同的,它们(特别是Chrome和Firefox)发展很快,所以它们一直在被优化。今天慢,明天快。在某些情况下,第一个组的属性的动画速度可能与最后一个组中的一个一样快,但作为一般规则,它不会。
https://stackoverflow.com/questions/22459046
复制相似问题