当前位置: 首页 > Web前端 > HTML5

测试transform和左变位的帧率差异

时间:2023-04-05 18:28:23 HTML5

记得一个流畅的动画测试如何让动画看起来更流畅更流畅?核心概念其实就是帧数稳定在60帧左右。本次不讨论使用raf实现流畅的帧动画。我们会讨论不依赖raf让一些已有的动画更流畅,即平均帧数接近60帧。1.侧滑实验本实验以左侧导航栏飞入开关开始,使用left和transform进行对比实验。现在普遍认为transform的性能优于改变position,因为可以减少页面重排。相关属性代码1.tansfrom:tanslateX(-100%);transition:变换1s线性;和2.left:-100px;过渡:左1s线性;由于页面结构并不复杂,动画也很简单,帧数基本在60左右,但是如果加上will:change属性,或者transform:translateZ(0),也就是GPU引擎加速,你可以少量提高帧率的稳定性,但效果不明显。因此得出结论,在简单的基础页面中,使用left或者transform改变dom位置的简单切换动画对动画的连贯性影响不大。由于在简单的页面上看不出transform的优越性,所以我们需要更复杂的页面和更复杂的动画来继续测试2.复杂动画测试这次我在smoothing实验代码的基础上做了改动,在每个html结构中都添加了一些到框,并添加了边距以使其能够增加页面容量。同时改进了动画效果,转场开关直接改为动画动画。css动画:测试0.2s线性交替10;@keyframestest{from{/*transform:translateX(-100%);*/左:-600px;}to{/*转换:translateX(100%);*/左:600px;}}html哈哈哈哈哈

哈哈哈哈哈哈

哈哈哈哈哈哈
//边框hahahahahahahahahaHahahahahahaha哈哈哈哈哈哈哈这个首先是动画效果。我的目的是让浏览器在高负载下运行,这样可以放大不同属性之间的微小误差。现在让我们看看使用left的帧率是什么样的。以下截图是多次截取的。测试选了最能代表帧率的,可以看到锯齿比较多,说明不稳定。当我将GPU加速改为6倍时,出现了一些不规则的锯齿。动画变得不稳定。接下来我们试试正常情况下transform如何和left类似,但是GPU降低6倍后效果有点不一样。虽然帧率不稳定,但比left的实现要好很多。Summary在动画中使用transform的位置确实比left好,每个方案都测了20次。一般来说,它比剩下的要少得多。在实验中,我在滑动属性中添加了will-change:transform;有一个小的改进。更复杂的动画需要继续完善并需要更多数据