[英]How to force synchronous relayout in javascript
我有javascript代码改变一些css来移动东西然后调用getBoundingClientRect(或.offset使用jquery,没有区别)。 我得到的结果毫无意义。 我怀疑我正在获取旧值,而重新布局发生在后台线程上。 如果我将我的代码分成两个函数并且第一个通过setTimeout调用第二个函数,那么一切正常(除了在超时间隔期间)。
我在网上发现了许多关于可能强制重新布局的事情,这些事情是从“避免这些;它们是缓慢的”视角写的。 我正在做的是在那些名单上。
但我需要的是一种明确强制同步重新布局的方法,我找不到。 有吗?
(这是在Firefox和Chrome中,如果重要的话)
element.offsetWidth
(或element.offsetHeight
)对我element.offsetHeight
(例如,在创建元素并将其插入文档后立即进行CSS转换)。
为此提供像element.reflow()
这样的专用函数会很好,但是仍然没有这样的函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.