2011-11-14 5 views
1

私たちはiPhone3D(3G + 4)でCSS3をテストしており、パフォーマンスの問題が発生しました。モバイルデバイスでのCSS3のパフォーマンス

私たちはWebappのプロフィール画像+追加情報を持っています。



我々は ボックス(私たちは90%のためのボックスを隠すデフォルト)があります。

border: 1px solid #aaa; 
font-size: 11px; 
text-shadow: 0 1px 0 rgba(0,0,0,.75); 
box-shadow: inset 0 0 40px rgba(255,255,255,.8); 
-webkit-box-shadow: inset 0 0 40px rgba(255,255,255,.8); 
-moz-box-shadow: inset 0 0 40px rgba(255,255,255,.8); 
-moz-border-radius: 0 10px 0 0; 
-webkit-border-radius: 0 10px 0 0; 
border-radius: 0 10px 0 0; 



をそして、我々は下にラベルを持つ3つのアイコンあります

background: rgba(0,0,0,.5); 
padding: 3px; 
font-weight: bold; 
text-shadow: 0 1px 0 #000; 
-moz-border-radius: 10px; 
-webkit-border-radius: 10px; 
border-radius: 10px; 

ここで、私たちがアニメーション化すると(ハイgherのYの位置)のボックス、アニメーションは本当に遅く、滑らかではありません。

アニメーションをスムーズにするにはどうすればよいですか?

PS。あなたがCSS3トランジションを使ってアニメーション化していると仮定して、この回答をしました。これは、iPhone 4Sが(CPUが優れているため)いいえ終了します。

+0

あなたはどのようにアニメーションですか? JavaScript? css3アニメーション? dom transistions? –

+0

Javascriptで最初に試してみました。その後、CSS3アニメーションで試しました。 CSS3ではパフォーマンスは向上しましたが、まだ滑らかではありません。 – StijnH

答えて

2

あなたがいなくても、あなたができるなら、あなたは改善されたパフォーマンスを期待することができます...それは価値があるショットです。

ここでの問題は、Webkitが本当に重い2つのボックスシャドウを再描画しなければならないということです。これは大きな仕事のようには見えませんが、最初にinset box-shadowを削除した場合、驚くべきパフォーマンスの飛躍が見えると思います。

私はアンドロイドデバイス(Webkitベースのブラウザ)でうごめくスクロールを経験し、このテストを実行して問題の原因を特定しました。テキストの影は、UIの種類の設定とは関係がありませんでした。グラジエントもかなり重要ではありませんでした。一度私がボックスシャドウを打つと、ぼかし半径をピクセルごとに取り除いたので、パフォーマンスがほぼ線形に進行していることに気付きました。

たとえば、6pxの半径は大きなdivにレンダリングするのに80msかかることがあります。私が3pxに落とした場合、レンダリング時間は40msに近くなりました。 2px、約20ms。

したがって、ボックスシャドウを保持し、可能であれば画像を使用したい場合は、小さいシャドウを使用します。 Webkitがローエンドのデバイスで1秒間に少なくとも20回UIを再描画できるポイントに達すると、おそらく大丈夫です。

明らかかもしれません。レンダリングの品質(例えば)のためのオプションはないので、実際にこれをスケールバックすることを超えて最適化することはできません。モバイルデバイスの場合、実際に行うことができるのは、効果を抑え、あなたの制限に基づいてアートワークを最適化することだけです。

+0

答えはThxです! -webkit-transform:translate3d(0、0、0)を追加している場合、私がGoogleで見つけたもの。これを要素にすれば、より良いパフォーマンスが得られます。しかし、それは絶対的な位置に置かれている要素に対しては機能しません。 – StijnH

+0

これはgpuアクセラレーションを有効にする必要があります。これは、アニメーションと同じくらい効率的です。私はWebkitが非直感的なパフォーマンスで読み込まれていることを発見しています...機能?それは奇妙なものを最適化するが、特定の条件では、そうする必要があるように思えるよりもはるかに遅い。私はかなり、主にそれを塗り替える方法で混乱しています。私は何かを見つけた場合にこの質問を好んだ。私はあなたが進歩を遂げるかどうか聞いてみたい! –

+0

奇妙なことはまた、iPhone 4でこれをテストすると、アニメーションが3Gでよりスムーズでなくなります。 – StijnH

関連する問題