如果我使用javascript更改函数中某个dom元素的某些属性,浏览器会在函数完成之前立即重新计算元素的新位置吗?也就是说,如果我使一个元素像obj.style.display = 'none'
一样不可见并且读取相同的函数,则会重新计算另一个元素的属性吗?
答案 0 :(得分:2)
答案略微不如此。现代浏览器中的DOM更新在以特定间隔刷新之前被缓存...但是,通过查询DOM的状态,您强制浏览器在那里执行重排。这是预期行为的一部分。
查看解释here
因此,如果您想延迟回流,可能先得到您需要的任何计算值。否则,你应该没问题。但是,由于它是"标准"的一部分,您可能会发现实施方式不同或偏离。