Iv'eは、iPadや他のタブレット用のWebアプリケーションを作成しており、適切かつ効率的な配置とアニメーションに関する限り多くのビューポートの問題が発生しました。私は最近、すべての私の自由なフローティング要素に-webkit-transformを使う考えを思いついた。私の質問は、position:relative
要素内のlrtb値を変更するよりも、スムーズで信頼性の高いアニメーションの方がCSS仕様で提供される変換を使用する方が良いでしょうか? ハードウェアアクセラレーションをオンにすると、特に方向の変更中に、要素の動きがランダムに点滅することがわかりました。 (絶対的に配置された要素)したがって、注目すべきブログがこのメソッドを使用していないのを見て、私はいくつかの親切な理由があるかどうかをチェックしたいと思っていました。CSSの変換対絶対的な位置付けの値の変更
答えて
位置ではなくトランスフォームでより良いパフォーマンスを達成することが可能です。
私は、この優れた記事から数ビットを引用しますが、実際には全体像を得るためにそれを読んでください:
http://www.html5rocks.com/en/tutorials/speed/html5/
彼らが持っているとき、現在ほとんどのブラウザのみGPUアクセラレーションを使用しますHTML要素が恩恵を受けることを強く示しています。最も強い示唆は、3D変換がそれに適用されたことです。 3D変換を適用したくないかもしれませんが、GPUアクセラレーションのメリットがありますが、問題はありません。単純に恒等変換を適用します。この背後に
-webkit-transform: translateZ(0);
理由は、これは必ずしも常に価値がないので、あなたはCPUが関係している作業の一部を委任し、GPUに、しかし思いやりであることです特にあなたの環境であるiPadなどのモバイルデバイスでは、次のようになります。
この変換を適用しても、パフォーマンスが向上するとは限りません。単にGPUをアップさせ、より多くのバッテリーを使い切ることができますが、これまでと同じ性能を発揮します。だから、このテクニックに注意し、あなたが本当のパフォーマンスの勝利を経験する場合にのみそれを使用してください。
ルカのポイントに加えて、翻訳とテストの掲載結果をテストする2つの投稿があります。
TLDR:transform: translate(x,y);
を使用
大幅CSS遷移を持つ要素に塗装時間を増加させます。
ただし、遷移なしの要素で使用すると、position: absolute;
top/left
の方が高速になります。
Why Moving Elements with translate is better than position absolute, top/left(ポール・アイリッシュ):アニメーションの
ガイドライン:
使用CSSキーフレームアニメーションやCSSトランジション、すべての可能であれば。ブラウザーはここで大きな時間を費やして絵画と合成を最適化することができます。
JSベースのアニメーションが必要な場合は、requestAnimationFrameを使用します。 setTimeout、setIntervalは避けてください。
可能であれば、すべてのフレーム(jQuery animate()スタイル)でインラインスタイルを変更しないようにしてください。CSSの宣言的なアニメーションは、ブラウザで最適化された にすることができます。
絶対配置の代わりに2D変換を使用すると、通常、より小さな塗装時間とより滑らかな アニメーションによって、より良いFPSが得られます。
タイムラインフレームのモードを使用して、「ペイントレクトの表示」と「レンダリングされた合成レイヤーボーダー」は、要素がレンダリングされている場所を確認するのに便利です。
Myth Busting transform:translate vs position top/left(騒ぎブログ):あなたはトランジションを使用していない場合は変換を用いて、より高速になります左/トップのプロパティを設定
プライマリ結論
。ターゲットはWebKitのであれば
は、最速のフレームレートが変換プロパティでトランジションを使用して、およびSafari /モバイルサファリ(クロームが自動的に これを行います)のためのグラフィックス 加速を強制から来ます。
非不透明なアイテムを合成する場合、WebKitでグラフィックスアクセラレーションを強制すると、Safari/Mobile Safariで大幅にパフォーマンスが向上し、Chromeではわずかに向上します( )。
不透明なアイテムだけを合成する場合、WebKitでグラフィックアクセラレーションを強制すると、パフォーマンスに悪影響が及ぼされます。
注:GPUを確保するためにtransform: translate3d(0,0,0)
を使用し、モバイルブラウザに遷移を加速しました。 (http://mobile.smashingmagazine.com/2012/06/21/play-with-hardware-accelerated-css/)
表示されない要素はどうですか? –
- 1. CSS - iphoneの絶対的な位置付けですか? (phonegap、jqtouch)
- 2. 絶対位置での位置付け
- 3. CSSの位置:絶対的な問題
- 4. 位置:ブラウザ/ウィンドウの絶対的な絶対値
- 5. CSS絶対位置
- 6. 絶対divの後のCSS divの位置付け
- 7. 絶対的な位置付けの問題
- 8. offsetTopと静的または絶対的な位置付け
- 9. 絶対に位置付け背景
- 10. 相対的な位置付けのヘルプ
- 11. 絶対的な位置付けを中心にCSSを中心にする
- 12. Javascriptを使用して絶対的な相対CSS値に変換する
- 13. 絶対位置ulの変更幅はなぜですか?
- 14. Javascript - 動的に絶対位置を変更する
- 15. 位置:絶対
- 16. 絶対位置と絶対位置のz-インデックス
- 17. OpenGL - GlVertex相対位置/絶対位置
- 18. 絶対位置の変換元に相当する
- 19. iTextSharpでHTMLをPDFに変換する際の絶対位置
- 20. CSSの位置絶対的な親要素を基準にして相対
- 21. CSSトランジション混合絶対的および相対的な位置決め
- 22. 位置の代わりに絶対的なインライン位置:relative?
- 23. 絶対位置または絶対パディング
- 24. 動的コンテンツの絶対位置
- 25. CSS:絶対位置指定子
- 26. ios9モバイルサファリランドスケープcssバグ(絶対位置):0
- 27. css絶対入力div位置
- 28. CSS:位置:絶対的な権利水平スクロールせずに
- 29. CSS Divの相対的な位置
- 30. CSS位置の絶対値を調整するツール
しかし私のアニメーションを完全に管理するために翻訳を使うべきか、アニメーションの送り先に 'left:XXpx; top:XXpx; – TERMtm