我有javascript代码更改一些css来移动东西然后调用getBoundingClientRect(或.offset使用jquery,没有区别)。我得到的结果毫无意义。我怀疑我正在获取旧值,而重新布局发生在后台线程上。如果我将我的代码分成两个函数并且第一个通过setTimeout调用第二个函数,那么一切正常(除了在超时间隔期间)。
我在网上发现了大量有关可能强制重新布局的内容的内容,这些内容是从“避免这些;它们很慢”的角度编写的。我正在做的就是这些名单。
但我需要的是一种肯定迫使同步重新布局的方法,我找不到。有吗?
(这在Firefox和Chrome中都很重要)
答案 0 :(得分:0)
element.offsetWidth
(或element.offsetHeight
)适合我(例如,在创建元素并将其插入文档后立即进行CSS过渡)。
为此设置一个像element.reflow()
这样的专用函数会很好,但仍然没有这样的函数。