2016-08-16 75 views
1

在javascript中我有這樣的窗口resize事件定義如何等待瀏覽器在JavaScript中完成迴流?

$(window).resize(function() { 

    }) 

但裏面,我需要的元素的寬度。問題是,我得到的尺寸是針對迴流之前的狀態,當我需要在迴流之後獲得尺寸時。

我試着把1ms的超時,但它似乎並沒有工作。如果我做了100毫秒,那麼它確實如此。但我不鏈接這個方法,有沒有更好的方法?

編輯:該函數被調用一次它只是它需要等待,直到重繪後。

感謝

+3

的可能的複製( http://stackoverflow.com/questions/5489946/jquery-how-to-wait-for-the-end-of-resize-event-and-only-then-perform-an-ac) –

+0

這不是我' m在調整大小時會觸發多個事件(即它只會被調用一次),但我只需要等到瀏覽器重新繪製後即可。 – omega

+0

調整大小事件在文檔調整大小後觸發,但在所有重繪完成之前顯然會觸發。也許可以使用RequestAnimationFrame來確定瀏覽器是否(幾乎)完成。見https://developer.mozilla.org/en-US/docs/Web/Events/resize和https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame – yezzz

回答

0

你應該使用document.ready這樣的:[?jQuery的 - 如何等待的「調整」事件,然後才執行操作「結束」]

$(document).ready(function(){ 
    $(window).resize(function() { 
    ///Your code 
    }); 
}); 
+0

我做到了,但這不是我的意思。重繪會在每次調整大小時發生。所以**裏面**調整大小,我需要以某種方式等待重繪完成。 – omega