簡體   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