我创建了this fiddle;红色框使用CSS left
属性设置动画,蓝色框使用CSS转换TranslateX
属性设置动画。
在Chrome 21中,两种动画都具有相同的性能,两者都运行顺畅。
但是在Safari(适用于Windows)中,蓝色的动画很流畅,但红色的却很迟钝。 (似乎蓝色的是硬件加速的,而红色的则没有)
第一个问题是,最佳选择是什么?哪一个总体上更好? (更多浏览器支持等)
接下来,在Safari中的left
和top
CSS属性上,硬件加速动画是否有办法? (因为我想将div
实际移到窗口外,我认为使用left
属性更好。)
答案 0 :(得分:1)
Translate用于移动对象而不影响DOM中的位置。虽然它可以明显地移动到屏幕上的另一个地方,但DOM并不会受到影响。这就是翻译功能的表现通常更好的原因。
请注意,您不会在每个浏览器中看到相同的性能特征。
这是对不同translate/move函数的JSPerf概述。滚动到底部可查看每个浏览器的统计信息。
将来很可能会改变。