我在网站中制作了大量效果和动画效果的动画。我试图优化这些动画的效率,因为其中一些对于低CPU/RAM设备来说有点复杂。动画并不顺利,因为我想,你可以在这里看到https://www.empresasite.com.br使用javascript分配值优化动画
所以我实现了我的代码很多地方我这样做:
var x = 38; //this value changes every 50ms
document.getElementById("a").style.left = document.getElementById("b").style.left = document.getElementById("c").style.left = document.getElementById("d").style.left = document.getElementById("e").style.left = x + "px";
其实它上面的简化,我运行上面的代码至少13个元素a = b = c = d .... m = x;
和至少4个属性(左,高度,阴影和背景色)。
所以我想知道是否有更好的选择一次赋予多个元素/对象相同的值?
也许下面的代码会更快?我用它,但我没有看到动画的重大改进,也许我应该看到它?
var x = 38;
x = x + "px";
document.getElementById("a").style.left = x;
document.getElementById("b").style.left = x;
document.getElementById("c").style.left = x;
document.getElementById("d").style.left = x;
document.getElementById("e").style.left = x;
我觉得上面的代码应该是更快的吧?我说这导致每个元素更新自己的属性(left
)从“x”中检索值。在第一个示例中,我给了MAYBE javascript分配了“=”符号链中前一个元素的值,因此它必须将“x”分配给第一个元素,然后将第一个元素的值分配给第二个元素...继续。
你知道的jQuery究竟是干什么的,当我用这个:
$(".elements").css({left:x});
是否使用了一些优化?
对于使用转换操作某种原因被转移到GPU,并由于某种原因,它看起来像我可以更快达到一个极限使用GPU比CPU使用动画regardig。例如:动画数百使用jQuery作品(不光滑,但它的工作原理),但使用GPU它打破一切动画元素的那些相同hunderds元素,一些动画开始,其他失去同步... – Samul
你很可能会导致大量的重新粉刷,你可以显示你的其他代码吗? – Stuart
这段代码现在是一个很大的混乱,我在https://www.empresasite.com.br里面运行顶部的巨大动画。 – Samul