私はWebアプリに取り組んでいます。その設計要件の1つは、いくつかの大きなCSS3アニメーションです。
具体的には、<div>
ユーザー入力に応じて画面上で遷移する大きな値があります。
アプリの設計方法により、その「コンテンツ」は、背景<div>
として設定された大きな静的グラフィック(.jpgや.pngなど)として実装できます。<div>
または、コンテンツを標準のHTMLで実装することもできます。(コンテンツのレイアウト自体は「少し」トリッキーです。いくつかのフローティングまたは配置されたネストされたdiv要素とスパンが必要ですが、クレイジーなことは何もありません。)
私の質問は-どのオプションが最高の(最も滑らかな)アニメーションをもたらす可能性が高いかということです。
(私は明らかにこれを自分でテストできますが、アニメーションの滑らかさを判断するのは難しいことがよくあります。特に、さまざまなデバイスの12の異なるブラウザで、メンテナンスなどの他の考慮事項があることも認識しています。ただし、この場合は、私は完全にアニメーションのパフォーマンスに焦点を当てています。)
ブラウザは、グラフィックの背景を持つ単純なDOM要素、またはグラフィック要素のないより複雑なDOM要素(子が多い)のアニメーション化/レンダリングに一般的に優れているのでしょうか。
また、他のガイドラインはありますか?例えば、
- ブラウザは特定の種類のグラフィック要素を他の要素よりもうまくアニメーション化しますか?(例:.pngと.jpg)
position:absolute
子要素が持っている場合、子要素がフロートされている場合、または子要素の位置が通常のドキュメントフローによって決定される場合、ブラウザは要素をより適切にアニメーション化しますか?- ネストされた要素の不透明度、ドロップシャドウ、3D変換などは、親要素のアニメーションに悪影響を及ぼしますか?
- 要素の複雑さに関連してアニメーションのパフォーマンスが低下しますか?たとえば、ネストされたDOM要素のレベルが12の要素は、テキストノードだけの単純な要素よりもスムーズにアニメーション化されませんか?
私はこれらのことについて直感を持っていますが(深くネストされたDOM要素は単純な要素よりもスムーズにアニメーション化されません)、私の直感はしばしば間違っています。ですから、ブラウザで何が機能するかについての「ルール」があるのではないかと思います。
子要素がたくさんある大きな要素をアニメーション化する場合、他に何を考慮する必要がありますか?