1. 程式人生 > >Javascript原生之用cssText批量修改樣式

Javascript原生之用cssText批量修改樣式

一般情況下我們用js設定元素物件的樣式會使用這樣的形式:

var element= document.getElementById(“id”);
element.style.width=”20px”;
element.style.height=”20px”;
element.style.border=”solid 1px red”;

樣式一多,程式碼就很多;而且通過JS來覆寫物件的樣式是比較典型的一種銷燬原樣式並重建的過程,這種銷燬和重建,都會增加瀏覽器的開銷。

js中有一個cssText的方法:

語法為 : obj.style.cssText=”樣式”;

element.style.cssText=”width:20px;height:20px;border:solid 1px red;”;

這樣就可以儘量避免頁面reflow,提高頁面效能。

 

但是,這樣會有一個問題,會把原有的cssText清掉,比如原來的style中有’display:none;’,那麼執行完上面的JS後,display就被刪掉了。
為了解決這個問題,可以採用cssText累加的方法:

Element.style.cssText += ‘width:100px;height:100px;top:100px;left:100px;’

但是,cssText(假如不為空)在IE中最後一個分號會被刪掉,比較BT….
因此,上面cssText累加的方法在IE中是無效的。

最後,可以在前面新增一個分號來解決這個問題:

Element.style.cssText += ‘;width:100px;height:100px;top:100px;left:100px;’

轉自:https://www.cnblogs.com/laneyfu/p/7637973.html