【发布时间】:2019-10-19 23:19:46
【问题描述】:
我一直在阅读 google 向我提供的一些指南和结果,但我仍然不确定如何将以下更改减少到一次回流。
var el1 = document.getElementById("one");
var el2 = document.getElementById("two");
var el3 = document.getElementById("three");
var variable1 = getSomeDynamicValue();
function doChanges() {
el1.style.cssText = "width: " + variable1 + "px;";
el2.style.cssText = "top:50px; left: 50px; position: fixed;";
el3.style.cssText = "";
}
doChanges();
据我了解,cssText 会导致重排,所以使用此代码会有三个重排?还是取决于其他情况?
编辑:文章和类似帖子并没有真正给出我的问题的明确答案。是否可以?方法是什么?
【问题讨论】:
-
为什么不只是
el1.style.width = "10px"? -
这些只是举例说明我需要进行哪些类型的更改。话虽如此,如果需要清除元素上的任何其他现有内联样式,使用 cssText 声明一个属性会很有用。
-
虽然更改页面通常会导致重排,但它们通常会延迟并在多个内容更改后折叠成单个重排。很少(如果你适当地避免它),reflows are forced to occur immediately 代码
标签: javascript css