2

背景:
WebGLキャンバスを使用して3Dコンテンツを表示するHTMLページがあります。オーバーレイされているのは複数<div>で、インラインCSSによって配置され、position: absoluteおよびに関連するディメンションがtopありleftます。

質問:
3Dコンテンツのビューを更新するとき(たとえば、すべてを少し回転させるとき)、オーバーレイされたものをすべて移動して<div>、3D空間の同じ場所にとどまるようにする必要があります。
Webページを更新して、再描画が1回だけになるようにするにはどうすればよいですか?

最初にWebGLを再描画し、次にn を反復処理すると、フレームごと<div>n +1の再描画が行われます。少なくとも30fpsを取得する必要があるアニメーションでは、これはあまり良くありません...

注:
次のような他の質問も知っています:
複数のリフローを回避するために、複数のCSSスタイルをバッチで適用する方法はありますか?-しかし、それは1つの要素で複数のCSSパラメーターを結合することについて話します(私はすでにここでそれを使用して2 n +1からn +1まで取得しています...)
単一の再描画/リフローで複数のDOM更新?-しかし、それがここで役立つかどうかはわかりません。n +1の再描画もあると思います...

PS:jQueryはそのプロジェクトですでに使用されているため、許可されています。

4

1 に答える 1

2

divの他の位置に対する相対的な相対位置が変化していない場合は、次に行うことができます。

  1. 絶対/相対/固定の位置で1つの親を作成します
  2. すべてのdivをこの親に追加し、CSSでそれらの位置を設定します(位置は親に対して相対的です)
  3. 親divを移動し、親divのスタイルを変更します
于 2012-04-05T04:02:41.953 に答える