2012-05-17 23 views
0

下面是CSS樣式應用到使用jQuery,我們都很熟悉的元素的幾種方法:什麼是使用jQuery應用CSS樣式的最有效的方法?

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

或者,我們可以使用jQuery和外部CSS的組合引起同樣的效果:

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

... 

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

忽略的事實,有CSS樣式住在JS代碼邪惡(恕我直言),我留下歲之後知道我一直在做這樣的:哪種方法更有效?我現在正在處理任務,它將對多個DOM元素進行相當大量的這種類型的樣式操作,在這種情況下,性能值得考慮。

我也環顧了其他類似的問題,但沒有找到答案。小心稱重?

感謝

回答

1

最有效的方式來在你的CSS現有類的名稱,只是交換類名。

參見:Reflows & Repaints: CSS Performance making your JavaScript slow?

+1

雖然我同意你,你有任何支持鏈接。假設快速有效的方法,現代瀏覽器處理類更改比內聯更快嗎?一個類更清潔,更容易處理,但如果你知道任何一個類,我會對看到一些指標感興趣。 – lucuma

+1

添加到帖子的鏈接。 –

1

運行上jsperf.com基準,並找出自己最有效的方法。你也可以在這裏分享你的發現以作爲後代。

1

在普通的JavaScript改變className通常比改變element.style更快,至少根據quirksmode完成的測試。

jQuery如何在同一個測試中做不確定的事情,因爲在jQ中改變樣式和類時都有很多額外的檢查,但我傾向於認爲它的結果大致相同。如果在一個元素上改變了多個樣式,總的來說,類會更快,或者與樣式速度相同,並且因爲類更清潔並且更容易處理,所以我會爲此付出代價。 ,除非你只是改變一個或兩個簡單的CSS規則。

0

你已經是對的兄弟了,我們可以使用jQuery和外部CSS的組合來引出相同的效果。比第一個更有效率,但它也取決於情況...

相關問題