2011-12-13 17 views
6

I'm working on a page turn animationパフォーマンスは残念です。特にpagesクラスを使って800px幅のものにしてください($('.pages').css({width: '960px', height: '600px'});をコンソールに貼り付けてください)。私は一度に約16回のトランジションを実行していましたが、9回に減らしました。その多くはトランスフォームです!他に何ができるのか分かりません。CSSトランジション、アニメーションのパフォーマンス、動作がひどい。

ChromeはGPUを使用していないようです。これは、(about:flagsでこれを有効)初期ページめくりにFPSスパイクが、その後、定期的にダウンディップ:

Chrome showing FPS dips

はSafariでそれを試してみて、あなたがより良いパフォーマンスを得るが、アニメーションが同期していないことがわかります多くの場合、お互いの背後にたどり着き、同じブラウザにRomán Cortés's project also suffered fromという奇妙な揺れがあります(私はまだFxで動作させていません)。

ウェブ上でCSSのトランジションやアニメーションを最適化する方法についてはあまりよくありませんでしたが、主に自分自身を教えてきました。誰かがこのようなアドバイスをしたいと思っていました。

答えて

3

ここでは、Sencha Animatorの発売についてa page flip I didです。それはまた、Ramon Cortesのオリジナルからインスパイアされていますが、私は覚えている限り、さまざまな仕組みを使用しています。 SafariやiOSでは超スムーズですが、Chromeデスクトップではジャーキーのようなものです。まだAndroid 4でそれをチェックしていない。あなたは-webkit-tranformの中translate3d(x,y,z)の代わりtranslate(x,y)を使用する必要がGPUを利用するためには

+0

サファリが気に入っているように、このテクニックを勉強しなければなりません。しかし、MacのChromeでは、ランダムにピクセルが黒くなったり、下のレイヤーがランダムに表示されたりしてレンダリングされます。 –

+0

はい、明らかにChrome 15(?)のWebkitバージョンには、変換が追加されたときに暗黙のzオーダーが乱れてしまうバグがあります。明示的なz-index設定でバージョンに取り組み、それが修正されているかどうかを確認します。 –

+0

'-webkit-transform-style:preserve-3d'を追加したら、それはちらつきのように見えません。私はまだそれがしてはならないいくつかのクリッピングを取得します。 –

4

。これにより、ChromeはGPUを使用してアニメーションをレンダリングします。

コンピュータに良好なビデオカードがある場合、パフォーマンスは大幅に向上しますが、低速のハードウェアでも低下することに注意してください。

+0

ありがとう、私はクロム/ MacOS上でtranslate3dを試してみました。そして、幾分複雑なDOM構造の12ページがあると、恐ろしく遅かったです。私は何かをアニメーション化する前に、ページ全体がクロールに遅れた!だから残念ながら、別のプラットフォームを高速化しながら、1つのプラットフォームを損なうことのない方法を見つけ出すことはできません。 –

2

OSXでChrome 17を使用していますが、20-30fps程度で動作し、ディップやグラフィカルな問題は発生しません。私はこれが古いChromeビルドの問題だと思う。

+1

最新のベータ版は実績が大幅に向上しています。ありがとう。 –

2

ボックスシャドウと-webkit-gradientsをアニメーション化するのは非常に高価です。パフォーマンスを向上させるかどうかを確認するために一時的に削除してみてください。そうであれば、イメージでそれらを置き換えるために何ができるかを見てください。

関連する問題