私は、ウェブサイトに多くのエフェクトとアニメーションを持つアニメーションを構築しています。私はこれらのアニメーションの効率を最適化しようとしています。それらのいくつかは、低CPU/RAMデバイスにとっては少し複雑です。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";
実際には上記の簡素化だ、私は上記のコードを実行します。私が好きなアニメーションはあなたがここにhttps://www.empresasite.com.br
見ることができるように私はこれを行うに私のコードの多くの部分で実現する滑らかでありません少なくとも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;
私は上記のコードがより速くなければならないと思いますか?私はすべての要素が "x"から値を取得する独自のプロパティ(left
)を更新するため、これを言う。最初の例では、私はMAYBEにjavascriptに "="記号のチェーン内の前の要素の値を割り当てているので、最初の要素に "x"を割り当て、次に最初の要素の値を2番目に割り当てなければなりません...続ける。
あなたは、私がこれを使用するときにjQueryのない正確に何を知っています:
$(".elements").css({left:x});
それはいくつかの最適化を使用していますか?
何らかの理由でtranslateを使用すると、操作がGPUに移動され、何らかの理由でCPU準拠のアニメーションを使用するよりGPUを使用してずっと早く限界に達する可能性があります。例:jqueryを使用して何百もの要素をアニメーション化(スムーズではありませんが動作します)。ただし、GPUを使用して同じ要素をアニメーション化すると、すべてが破損し、アニメーションが開始し、同期が失われます... – Samul
再描画残りのコードを表示することはできますか? – Stuart
コードは大変混乱しています。トップにある巨大なアニメーションの中でhttps://www.empresasite.com.brで実行しています。 – Samul