繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM