2016-08-16 8 views
1

はJavaScriptで私は、このウィンドウのサイズ変更イベントが ブラウザがJavaScriptでリフローを完了するのを待つ方法はありますか?

$(window).resize(function() { 

    }) 

を定義したが、内部に、私は要素の幅を取得する必要があります。問題は、リフロー後にディメンションを取得する必要があるときに、リフロー前にどのように見えるかについての状態がわかります。

1msのタイムアウトを入れようとしましたが、動作しないようです。私が100msをしたら、それはそうです。しかし、私はこの方法をリンクしていない、良い方法はありますか?

EDIT:関数は一度と呼ばれるが、そのことが再描画後まで待つ必要があるだけのことをされます。

おかげ

+3

可能性のある重複した[?jQueryの - 「サイズ変更」イベントの「終了」を待つだけにして、アクションを実行する方法]( http://stackoverflow.com/questions/5489946/jquery-how-to-wait-for-the-end-of-resize-event-and-only-then-perform-an-ac) –

+0

それは私が、サイズ変更時に複数のイベントが発生する(つまり、1回しか呼び出されない)が、ブラウザを再描画するまで待つ必要があります。 – omega

+0

resizeイベントは、ドキュメントのサイズを変更した後に発生しますが、すべての再描画が完了する前に発生します。 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を使用する必要がありますの

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

を参照してください。それは私が意味するものではありません。再描画はすべてのサイズ変更で行われます。 **サイズ変更の中で**、私は何とかやり直しが完了するのを待つ必要があります。 – omega

関連する問題