给定以下动画循环:
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中调试它。您可以在"检查器工具"中选择一个标志,以便在正在绘制的对象周围绘制矩形。当一个元素被硬件加速时,它不会显示为绘图区域。元素周围没有红色的矩形表示它是硬件加速的。