如何在javascript中强制同步重新布局

时间:2016-06-17 17:47:07

标签: javascript css dom layout

我有javascript代码更改一些css来移动东西然后调用getBoundingClientRect(或.offset使用jquery,没有区别)。我得到的结果毫无意义。我怀疑我正在获取旧值,而重新布局发生在后台线程上。如果我将我的代码分成两个函数并且第一个通过setTimeout调用第二个函数,那么一切正常(除了在超时间隔期间)。

我在网上发现了大量有关可能强制重新布局的内容的内容,这些内容是从“避免这些;它们很慢”的角度编写的。我正在做的就是这些名单。

但我需要的是一种肯定迫使同步重新布局的方法,我找不到。有吗?

(这在Firefox和Chrome中都很重要)

1 个答案:

答案 0 :(得分:0)

element.offsetWidth(或element.offsetHeight)适合我(例如,在创建元素并将其插入文档后立即进行CSS过渡)。

为此设置一个像element.reflow()这样的专用函数会很好,但仍然没有这样的函数。