Javascript 持续时间为零的css转换是否仍在硬件加速?

Javascript 持续时间为零的css转换是否仍在硬件加速?,javascript,css,css-transitions,hardware-acceleration,Javascript,Css,Css Transitions,Hardware Acceleration,给定以下动画循环: var element = document.getElementById('myElement'), left = 0; element.style.transition = 'translate 0s linear'; function loop() { left++; element.style.transform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,' + left + ',0,0,1)'; re

给定以下动画循环:

var element = document.getElementById('myElement'),
    left = 0;

element.style.transition = 'translate 0s linear';

function loop() {
    left++;
    element.style.transform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,' + left + ',0,0,1)';
    requestAnimationFrame(loop);
}
动画还会像纯粹使用css过渡一样,从硬件加速中获益吗?另外,环境浏览器、版本、操作系统对此有何影响


上面的代码只是想让你了解我的意思。它不是用来生产的。正常情况下,我当然会为requestAnimationFrame提供一个后备方案,实现一种控制动画的方法等等。

尝试在Chrome中调试这个。可以在Inspector工具中选择一个标志,以围绕正在绘制的对象绘制矩形。当一个元素被硬件加速时,它将不会显示为绘图区域。如果元素周围没有红色的长方形,则表明它是硬件加速的。

谢谢,这很有效。区域会被重新绘制,我花了一些时间来找出原因。我不能确定,因为我无法显式地测试它,但似乎发生了以下情况:更改DOM节点的style属性会导致样式无效。样式必须重新解析,元素必须重新绘制。即使翻译本身由gpu处理,也不会有任何性能提升。AFAIK除了webGL之外,从浏览器中的硬件加速动画中获利的唯一方法是使用过渡。