【发布时间】:2017-08-30 02:56:36
【问题描述】:
我正在网站中构建具有大量效果和动画的动画。我正在尝试优化这些动画的效率,因为其中一些对于低 CPU/RAM 设备来说有点复杂。动画不像我想要的那样流畅,你可以在这里看到https://www.empresasite.com.br
所以我意识到在我的代码的许多部分我都是这样做的:
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});
它是否使用了一些优化?
【问题讨论】:
标签: javascript jquery html animation