我最近一直在阅读有关优化CSS和JavaScript / jQuery以获得GPU性能的最新信息,特别是在移动设备上,特别是在CSS动画更改对网站性能产生不利影响的情况下。
我已经完成了一些测试,但我无法判断我是否正确优化了我的代码以提高性能。
基本变换动画适用于max-height
或position
属性
我已经整理了一个简单的codepen来试图展示我的目标以及我想要实现的目标。 http://codepen.io/onebitrocket/pen/jFrtf
我已经检查了chrome中的性能时间轴,但我不确定结果是否与优化的CSS和jQuery一样。
我会看到使用JavaScript和classList.toggle的更好的性能,而不是像演示中的jQuery,jQuery是否会阻止CSS动画的优化?
我还看到了几个绘图事件,其中图层根据文档记录。
由于
答案 0 :(得分:1)
优化。您正在使用3d转换进行翻译,这很快。当顶盒移动时,链接上的paiting是由于颜色和下划线的变化。盒子的移动发生在GPU上,不应该影响其他任何东西。
但是,动画width
或height
属性是另一回事。那些是layout
属性,因此,当它们发生变化时,页面的布局会发生变化,需要重新绘制。在你的情况下,框后面没有任何内容,但是如果你放了更多元素,当你为框大小设置动画时,它们会上下移动。
CSS中的属性可分为三组:
当然,每个浏览器都不同,它们(特别是Chrome和Firefox)的发展非常迅速,所以它们一直在进行优化。今天慢慢的明天可以很快。可能存在这样的情况:第一组的属性的动画可能与最后一组的属性一样快,但作为一般规则,它不会。