目次
キーポイント
実用的なツール戦闘
などのアニメーションプロパティは、公開または描画操作をトリガーしないため、パフォーマンスが向上する傾向があります。ただし、アニメーションのアニメーション
スムーズなCSSアニメーションの理想的なフレームレートはいくらですか?
CSSアニメーションを最適化してパフォーマンスを向上させる方法は?
パフォーマンスの観点から、CSSアニメーションとJavaScriptアニメーションの違いは何ですか?
ハードウェアアクセラレーションはCSSアニメーションのパフォーマンスにどのように影響しますか?
DevToolsのパフォーマンスパネルを使用してCSSアニメーションパフォーマンスを向上させる方法は?
CSSアニメーションのパフォーマンスに対するレイアウトジッターの影響は何ですか?
CSSwill-change属性を使用してアニメーションのパフォーマンスを向上させる方法は?
ホームページ ウェブフロントエンド CSSチュートリアル CSSの最適化:DevToolsでアニメーションパフォーマンスを微調整します

CSSの最適化:DevToolsでアニメーションパフォーマンスを微調整します

Feb 16, 2025 pm 12:10 PM

CSSアニメーションパフォーマンス最適化ガイド:ブラウザ開発者ツールを使用してアニメーションの流ency性を向上させる

Optimizing CSS: Tweaking Animation Performance with DevTools

この記事は、Sitegroundとのコラボレーションで作成されています。 SitePointをサポートしてくれたパートナーに感謝します。

私たち全員が知っているように、CSSアニメーションのパフォーマンスは通常非常に高くなっています。ただし、多数の要素または複雑なアニメーションを含むシーンの場合、コードがパフォーマンスに最適化されていない場合、アニメーションがutter音を立て、ユーザーエクスペリエンスに影響を与えます。

この記事では、CSSアニメーションの背後にある実行中のメカニズムを確認するのに役立つ実用的なブラウザ開発者ツール機能を紹介します。アニメーションが立ち往生している場合、理由をよりよく理解して修正できます。

キーポイント

  • ブラウザ開発者ツールを使用して、CSSアニメーションパフォーマンスを最適化し、アニメーションの遅れを引き起こす問題を特定し、アニメーションの根本的な操作に関する洞察を得ます。これらのツールは、フレームレートを確認し、コードをレビュー、編集し、デバッグし、パフォーマンスに影響を与える可能性のあるレイアウトと描画操作を分析できます。
  • スムーズなアニメーション効果を取得するには、ターゲットフレームレートは60fps(1秒あたりのフレーム)に達する必要があります。より滑らかなアニメーションを確保するために、CSSの不透明度、変換、フィルターのみがアニメーション化されます。他のプロパティをアニメーション化すると、ブラウザに圧力をかけると、非常に短い時間で費用のかかるタスクを実行するように強制され、結果が悪い結果になります。
  • css属性、またはwill-changeおよびtranslateZ(0)手法を使用して、プロセスのためにブラウザにGPU(グラフィックス処理装置)にいくつかのプロパティの変更を引き渡させるように強制します。これにより、ハードウェアアクセラレーションが活用され、メインブラウザスレッドへの圧力の一部が軽減されます。ただし、過剰使用は、アニメーションのst音など、避けようとしている問題を引き起こす可能性があります。 translate3d(0,0,0)
開発者ツールとCSSパフォーマンス分析

ブラウザでスムーズに実行するには、アニメーションが60fpsに到達する必要があります。フレームレートが低いほど、アニメーション効果が悪化します。これは、ブラウザがその仕事をするためにフレームごとに約16ミリ秒しかないことを意味します。しかし、この間にそれは何をしましたか?あなたのブラウザが必要なフレームレートに追いつくかどうかをどうやって知るのですか?

アニメーション品質を評価する際に、ユーザーエクスペリエンスほど重要なことは何もないと思います。ただし、最新のブラウザ開発者ツールは常に100%信頼できるとは限りませんが、それらはより賢くなりつつあり、それらを使用してコードを確認、編集、デバッグできます。

フレームレートとCSSアニメーションのパフォーマンスを確認する必要がある場合、

同じことが当てはまります。これがどのように機能するかです。

Firefox Performance Tool Exploration

この記事では、Firefoxパフォーマンスツールを使用しています。もう1つの主要な競争相手は、Chrome Performance Toolsです。両方のブラウザが強力なパフォーマンス機能を提供するため、お気に入りのツールを選択できます。

Firefoxで開発者ツールを開くには、次のオプションのいずれかを選択します。

  • Webページを右クリックして、[コンテキスト]メニューで[要素をチェック]チェックを選択します。
  • またはキーボードショートカットを使用します:WindowsとLinuxでCtrl Shift I を押し、 cmd opt iをmacosで押します。

次に、[パフォーマンス]タブをクリックします。ここに、ウェブサイトのパフォーマンスデータの記録を開始できるボタンがあります。

このボタンを押して数秒待つか、ページでアクションを実行します。終了したら、[パフォーマンスの録音を停止]ボタンをクリックします:Optimizing CSS: Tweaking Animation Performance with DevTools

すぐに、Firefoxは、コードの問題を理解するのに役立つ多くのよく組織化されたデータを提示します。 Optimizing CSS: Tweaking Animation Performance with DevTools

パフォーマンスパネルの録音の結果は次のとおりです。

「ウォーターフォール」セクションは、CSSの移行とキーフレームアニメーションに関連する問題を確認するのに最適です。他の部分は「コールツリー」と「JS Flameグラフ」で、JavaScriptコードでボトルネックを見つけるために使用できます。

Optimizing CSS: Tweaking Animation Performance with DevTools 滝の流れビューには、概要セクションと上部に詳細な内訳があります。両方で、データは色分けされています:

黄色のバーはJavaScript操作を示します。
  • 紫色のバーは、HTML要素を計算するCSSスタイル(再計算スタイル)とページレイアウト(レイアウト)を表します。レイアウト操作はブラウザにとって非常に高価なので、重複したレイアウト(「リフロー」とも呼ばれるプロパティ - たとえば、
  • marginpaddingtopleft
  • 、など)、結果はutter音を立てる可能性があります。
  • color緑色のバーは、要素が1つ以上のビットマップに描画されることを示します(描画)。アニメーションbackground-colorbox-shadow
  • 、その他の属性には、高価な描画操作が含まれます。

データ型をフィルタリングして確認することもできます。たとえば、私はCSS関連のデータのみに興味があるので、画面の左上隅にあるフィルターアイコンをクリックすると、他のすべてを解除できます。

Optimizing CSS: Tweaking Animation Performance with DevTools 滝の流れの概要の下の緑色のバーは、フレームレート情報を示しています。

健康な表現は非常に高く見えるはずですが、最も重要なことには、深いギャップがあまり多くありません。

これを例で説明しましょう。

実用的なツール戦闘

これは、@keyframesキーワードを使用した単純なCSSアニメーションです。テストページは次のようになります:

Optimizing CSS: Tweaking Animation Performance with DevTools Optimizing CSS: Tweaking Animation Performance with DevTools 長方形の紫色のフレームは、無限のループの内外でスライドします。

画面上の長方形ボックスの<div>要素の<code>margin-left属性を表すアニメーションによってこれを行います。 @keyframesアニメーションブロックは次のとおりです

@keyframes slide-margin {
  100% {
    margin-left: 0;
  }
}
ログイン後にコピー
このアニメーションから得られるパフォーマンスデータは次のとおりです。

フレームレートの視覚化は少し不均一に見え、平均フレームレートは44.82fpsで、少し低いです。

また、アニメーションプロセス中に発生するすべてのレイアウトおよび描画操作に注意してください。これらは、ブラウザがメインスレッドで実行する費用のかかるアクションであり、パフォーマンスに悪影響を及ぼします。 Optimizing CSS: Tweaking Animation Performance with DevTools

最後に、Inspectorツールにアクセスする場合は、アニメーションセクションをクリックしてからアニメーション名の上にホバリングすると、情報ボックスが現在のアニメーションに関するすべての関連データがポップアップ表示されます。アニメーションが最適化されている場合、事実を説明するメッセージが表示されます。この場合、メッセージはありません:

ここで、ブラウザがこの

ブロックを使用してcss

プロパティをアニメーション化するため、コードを変更して新しい録音を行います。 Optimizing CSS: Tweaking Animation Performance with DevTools @keyframesこれは、パフォーマンスで記録された画像です:translate3d()

@keyframes slide-three-d {
  100% {
    transform: translate3d(0, 0, 0);
  }
}
ログイン後にコピー
フレームレートが高く(56.83FPS)、滝の流れには費用のかかるレイアウトと描画操作が表示されません。

また、開発者ツールの「インスペクター」タブを開くと、「アニメーション」パネルにアクセスしてアニメーション名にホバリングする場合、次のようなものが表示されます。

アニメーション名に関連付けられた情報ボックスは、すべてのアニメーションが最適化されていることを示しています。これは、ウェブサイトの訪問者にとって朗報です。 Optimizing CSS: Tweaking Animation Performance with DevTools

cssの

Optimizing CSS: Tweaking Animation Performance with DevTools のみをアニメーション化します

この提案を聞いたことがあるかもしれませんが、それについてもう一度話す価値がある場合に備えて、アニメーションをスムーズに実行したい場合は、CSS(フィルター)の不透明、変換、フィルターのみがアニメーションを設定します。効果。他のすべてをアニメーション化すると、ブラウザに圧力をかけることができ、非常に短い時間で費用のかかるタスクを実行するように強制します。これは通常、最良の結果を生み出しません。

ブラウザのパフォーマンスツールが証明されているため、レイアウトと描画操作の繰り返しは友達ではありません。

ただし、各ブラウザはCSSプロパティをわずかに異なる方法で処理します。どのブラウザがプロパティ(特にWebアニメーションに関係するこれらのプロパティの値を更新する場合)の公開および描画操作をトリガーするかを知りたい場合は、CSSトリガーにアクセスしてください。

アニメーションのパフォーマンスを確保するために、人気のあるアプローチは、ブラウザにGPU(グラフィックス処理ユニット)へのプロパティの変更を強制的に引き渡させることです。

css属性、または

およびwill-change手法を使用してそれを実現できます。これらのヒントはすべて動作しますが、過剰に使用すると、実際に避けようとしている結果、つまりアニメーションがst音を立てることができます。 translateZ(0) translate3d(0,0,0)Webアニメーションのパフォーマンスのためのハードウェアアクセラレーションについて詳しく説明するつもりはありませんが、より深く掘り下げたい場合は、以下にリストされているリソースをご覧ください。

リソース

などのアニメーションプロパティは、公開または描画操作をトリガーしないため、パフォーマンスが向上する傾向があります。ただし、アニメーションのアニメーション

は、レイアウトオフセットや再描画を引き起こす可能性があり、アニメーションが遅くなります。さらに、デバイスのハードウェアとブラウザのレンダリングエンジンも、CSSアニメーションのパフォーマンスに影響します。

transform CSSアニメーションのパフォーマンスを測定する方法は? opacity widthブラウザ開発者ツールを使用して、CSSアニメーションのパフォーマンスを測定できます。たとえば、Chromeでは、パフォーマンスタブを使用して、アニメーションの実行時間を記録および分析できます。このツールは、アニメーションライフサイクルの時間消費の詳細な内訳を提供し、パフォーマンスのボトルネックを特定するのに役立ちます。 height

スムーズなCSSアニメーションの理想的なフレームレートはいくらですか?

スムーズなアニメーションの理想的なフレームレートは、1秒あたり60フレーム(FPS)です。これは、ほとんどのデバイスがスクリーンを毎秒60回更新するためです。したがって、スムーズなアニメーションを作成するには、60fpsに対応する16.67ミリ秒(1秒/60)ごとにアニメーションを更新する必要があります。

CSSアニメーションを最適化してパフォーマンスを向上させる方法は?

CSSアニメーションを最適化してパフォーマンスを向上させるためのさまざまな戦略があります。一般的なアプローチは、transformopacityなどの操作を投稿または描画することをトリガーしないアニメーションプロパティです。さらに、アニメーション化されている要素の数を減らしてアニメーションを簡素化すると、パフォーマンスが向上する可能性があります。 will-change属性を使用すると、アニメーション化される可能性のあるプロパティを求めることにより、ブラウザがアニメーションを最適化するのにも役立ちます。

パフォーマンスの観点から、CSSアニメーションとJavaScriptアニメーションの違いは何ですか?

CSSアニメーションは通常、JavaScriptアニメーションよりも優れたパフォーマンスを発揮します。これは、CSSアニメーションがメインのJavaScriptスレッドとは別のブラウザのレンダリングエンジンで実行されるためです。これは、JavaScriptスレッドがビジーである場合でも、CSSアニメーションがスムーズに実行できることを意味します。ただし、JavaScriptアニメーションは、より多くの制御と柔軟性を提供します。これは、複雑なアニメーションに有益です。

ハードウェアアクセラレーションはCSSアニメーションのパフォーマンスにどのように影響しますか?

ハードウェアアクセラレーションは、CSSアニメーションのパフォーマンスを大幅に改善できます。ハードウェアアクセラレーションが有効になると、ブラウザはいくつかのレンダリングタスクをデバイスのGPUにロードし、CPUを解放して他のタスクを処理します。これにより、特に多数の要素が含まれる複雑なアニメーションやアニメーションでは、よりスムーズなアニメーションにつながる可能性があります。

requestAnimationFrameアニメーションのパフォーマンスにおいて機能はどのような役割を果たしますか?

requestAnimationFrame関数は、次の塗り直しの前に指定された関数を呼び出すことにより、より効率的なアニメーションを可能にするJavaScriptメソッドです。これは、アニメーションをデバイスのリフレッシュレートと同期させることができることを意味し、その結果、アニメーションがスムーズになります。また、ブラウザがアニメーションを最適化し、CPUの使用量を削減し、パフォーマンスを向上させることができます。

DevToolsのパフォーマンスパネルを使用してCSSアニメーションパフォーマンスを向上させる方法は?

DevToolsのパフォーマンスパネルは、アニメーションライフサイクルでの時間消費の詳細な内訳を提供します。このデータを分析することにより、パフォーマンスのボトルネックを特定し、それに応じてアニメーションを最適化できます。たとえば、描画に多くの時間が費やされている場合は、アニメーションが描画操作をトリガーしないプロパティを検討することをお勧めします。

CSSアニメーションのパフォーマンスに対するレイアウトジッターの影響は何ですか?

レイアウトジッターとは、DOMの変更によりブラウザがレイアウト情報を繰り返し計算する必要がある状況を指します。これは、CSSアニメーションのパフォーマンスに深刻な影響を与える可能性があり、アニメーションがゆっくりと実行されるか、st音を引き起こします。レイアウトジッターを避けるために、DOMの読み取りと書き込み操作を一緒にバッチして、アニメーションを避けて公開操作のプロパティをトリガーしてみてください。

CSSwill-change属性を使用してアニメーションのパフォーマンスを向上させる方法は?

will-changeプロパティを使用すると、アニメーションを計画するプロパティの前にブラウザに通知できます。これにより、アニメーションが開始される前に、ブラウザが必要な最適化を実行できるため、アニメーションがスムーズになる可能性があります。ただし、ブラウザがより多くのリソースを消費し、パフォーマンスにマイナスの影響を与える可能性があるため、will-change属性は注意して使用する必要があります。

(上記のすべてのリンクを実際のリンクに置き換える必要があることに注意してください)

以上がCSSの最適化:DevToolsでアニメーションパフォーマンスを微調整しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

静的フォームプロバイダーの比較 静的フォームプロバイダーの比較 Apr 16, 2025 am 11:20 AM

ここでは、「静的フォームプロバイダー」という用語を埋めてみましょう。あなたはあなたのHTMLを持ってきます

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 Apr 17, 2025 am 10:55 AM

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

HTMLダイアログ要素を使用したいくつかの実践 HTMLダイアログ要素を使用したいくつかの実践 Apr 16, 2025 am 11:33 AM

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

ペーパーフォーム ペーパーフォーム Apr 16, 2025 am 11:24 AM

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? 「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? Apr 16, 2025 pm 12:04 PM

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

それはすべて頭の中にあります:Reactヘルメットを使用してReact Poweredサイトのドキュメントヘッドを管理する それはすべて頭の中にあります:Reactヘルメットを使用してReact Poweredサイトのドキュメントヘッドを管理する Apr 15, 2025 am 11:01 AM

ドキュメントヘッドはウェブサイトの中で最も魅力的な部分ではないかもしれませんが、それに入るものは間違いなくあなたのウェブサイトの成功にとってそれと同じくらい重要です

独自の非JavaScriptベースの分析をホストするためのオプション 独自の非JavaScriptベースの分析をホストするためのオプション Apr 15, 2025 am 11:09 AM

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています

See all articles