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