0

よく知っているjQueryを使用して要素にCSSスタイルを適用する方法をいくつか示します。

$('.box').css({'background':'#fff', 'color':'#000'});

または、jQueryと外部CSSの組み合わせを使用して、同じ効果を引き出すことができます。

.box.deco { background:#fff; color:#000; }

...

$('.box').addClass('deco');

CSSスタイルをJSコードに組み込むことは悪であるという事実(IMHO)を無視すると、私はこれを何年にもわたって行ってきたので、どちらのアプローチがより効率的か疑問に思います。私は現在、複数のDOM要素にわたってこのタイプのスタイル操作を比較的大量に実行するタスクに取り組んでいます。この場合、パフォーマンスは検討する価値があります。

SOに関する他の同様の質問を調べましたが、答えは見つかりませんでした。計量する気ですか?

ありがとう

4

4 に答える 4

1

CSSに既存のクラス名を設定し、クラス名を入れ替える最も効率的な方法。

参照:リフローとリペイント:CSSのパフォーマンスがJavaScriptを遅くしていますか?

于 2012-05-17T17:53:44.073 に答える
1

普通の JavaScript では、少なくともquirksmodeによるテストによれば、通常、className を変更する方が element.style を変更するよりも高速です。

jQ でスタイルとクラスを変更するときにかなりの数の追加チェックがあるため、同じテストで jQuery がどのように動作するかは不明ですが、ほぼ同じ結果であると考える傾向があります。

全体として、要素のいくつかのスタイルを変更する場合、クラスは一般的に高速であるか、スタイルとほぼ同じ速度になります.単純な CSS ルールを 1 つまたは 2 つ変更するだけです。

于 2012-05-17T18:05:36.660 に答える
1

jsperf.com でベンチマークを実行し、最も効率的な方法を自分で見つけてください。後世のためにここで発見を共有することもできます。

于 2012-05-17T18:01:30.757 に答える
0

おっしゃるとおり、jQuery と外部 CSS を組み合わせて同じ効果を引き出すことができます。最初のものよりも効率的ですが、状況にもよります...

于 2012-05-17T18:44:16.067 に答える