2016-05-25 17 views
0

javascriptを使用して関数内のdom要素のいくつかのプロパティを変更した場合、ブラウザは関数の終了前に直ちに要素の新しい位置を再計算しますか?つまり、ある要素をobj.style.display = 'none'のように見えなくし、別の要素の同じ関数のプロパティを読み込むと、それらは再計算されますか?firefoxは要素の位置を再計算しますか?

+0

機能が終了すると、再計算されます。 – super11

+0

Javascriptがメインイベントループに戻るときにすべてが計算されます。 – Barmar

答えて

2

答えはそれよりも少し難解です。現代のブラウザでは、DOMの更新は特定の間隔でフラッシュされる前にキャッシュされますが、DOMの状態を調べることでブラウザは強制的にリフローを実行します。それは期待される行動の一部です。

はそう説明here

を参照してくださいあなたは、リフローを延期したい場合は、多分あなたは最初に必要と計算されたものは何でも値を取得します。そうでなければ、あなたは大丈夫でしょう。しかし、それが「標準」の一部であるため、実装が異なっているか、迷っていることがあります。