Performance translate3d总是强制硬件加速还是仅强制转换属性?

Performance translate3d总是强制硬件加速还是仅强制转换属性?,performance,css,mobile,gpu,Performance,Css,Mobile,Gpu,假设我有一个页面,其中一个元素在left属性上设置了动画。如果我只加上一个零的translateZ,这是否足以在移动设备上强制硬件加速?通过使用translateX而不是left,我会在硬件加速/GPU方面获得什么好处吗?我找到了答案-它只会加速转换属性,而不是left。这里有一些小提琴的例子来演示 left和translateZ的组合-手机上的波涛汹涌 translateX和translateZ的组合-非常平滑 首先,我想指出translateZ(0)不是一个通过GPU加速平滑动画的跨浏览器解

假设我有一个页面,其中一个元素在left属性上设置了动画。如果我只加上一个零的translateZ,这是否足以在移动设备上强制硬件加速?通过使用translateX而不是left,我会在硬件加速/GPU方面获得什么好处吗?

我找到了答案-它只会加速转换属性,而不是left。这里有一些小提琴的例子来演示

left和translateZ的组合-手机上的波涛汹涌
translateX和translateZ的组合-非常平滑

首先,我想指出translateZ(0)不是一个通过GPU加速平滑动画的跨浏览器解决方案,GPU加速不应该随便使用,因为它非常昂贵

这就是说,当它起作用时,它不会只对translate属性起作用,因此简短的回答是肯定的,它对所有属性都起作用

在您的示例中,您可以清楚地看到使用translate而不是left的改进,因为translate不会在每一帧触发布局(导致页面重新计算元素位置)。 请记住,使用“平移”等轻量级属性为元素设置动画比使用GPU加速的昂贵属性具有更高的性能

您可以在wich上找到动画制作成本较低的属性