我可以使用JavaScript强制浏览器“刷新”所有未完成的布局更改吗?

问题描述 投票:6回答:4

我有一个使用Javascript构建UI的库,由于涉及到动态内容,有时我想将内容发布到浏览器中,检查如何更改布局以支持该布局,然后根据结果执行不同的逻辑。例如:检测某些文本是否溢出,并用省略号将其截断。

通常,我通过发布更改来实现,然后使用window.setTimeout(0)等待布局更新并调用其余逻辑。这显然是次优的,因为不同的浏览器可能实现的最小超时太慢而无法防止闪烁,或者实现的超时耗费大量CPU。

理想情况下,我想进行DOM更改,然后强制布局同步更新并立即内联运行“修复”逻辑。有什么想法吗?

我有一个使用Javascript构建UI的库,由于涉及的动态内容,有时我想将内容发布到浏览器中,检查如何更改布局以支持该布局,并且...

javascript dom layout browser
4个回答
3
投票
我们遇到了IE8的一个疯狂问题(Firefox,Chrome都可以)。我们在子元素上使用toggleClass('enoMyAddressesHide')。

6
投票
我的理解是,读取任何CSS属性都会强制重排。您完全不需要setTimeout

0
投票
我不知道这实际上对您的实现有效,但是:

0
投票
是,可以!
© www.soinside.com 2019 - 2024. All rights reserved.