1. CSS、jQuery、Canvasを使用してアニメーションを作成する 1. キャンバス 利点: パフォーマンスが良好、強力、ほとんどのブラウザをサポート (IE6、IE7、IE8 を除く)、描画したグラフィックを .png または .jpg グラフィックとして直接保存できます。 デメリット: HTML に依存し、スクリプトを通じてのみグラフィックを描画でき、アニメーションを実装するための API がありません (イベントとタイマーの更新に依存)。プログラムによってキャンバス上に表示されるテキストは実際にはビットマップであるため、検索クローラーはテキストを完全に無視します。テキストコンテンツもスクリーンリーダーでは読み取れません。 2.css3 利点: シンプルでコンテンツから分離されており、CSS アニメーションはレイアウトとペイントをトリガーしません (これらのプロパティを変更してもレイアウトとペイントはトリガーされません: backface-visibility、opacity、perspective、perspective-origin、transform)。 デメリット: ブラウザの互換性の問題があり、Android フォンがフリーズする可能性があり、タイプセッティング エンジンによって制限され、ページ全体の DOM 構造に密接に関連しています。 3. クエリ 利点: 互換性の問題がない デメリット: すべてのフレームを再描画して再合成する必要がある (非常に時間がかかります)。 要約: モバイル アニメーション効果に関しては、CSS3 アニメーションを使用する方が jQuery アニメーションを使用するよりもはるかに効率的です。これは特に Android スマートフォンに当てはまります。そのため、モバイルアニメーションは CSS3 アニメーションよりも優先され、jQuery はアプリケーションロジックを単純に処理するためにのみ使用できます。 CSS3 アニメーションは、コンテンツのレイアウトに特殊効果を追加するための汎用的なソリューションですが、パフォーマンスの低いモバイル ブラウザーではレイアウトのパフォーマンスが制限され、目的の効果が得られない場合があります。ゲームなど、高いパフォーマンスが求められる特定のシナリオでは、キャンバスを使用するとパフォーマンスが大幅に向上します。 2. CSS3はモバイルデバイス上でフリーズする問題がある CSS3 で作成されたアニメーションは iOS では 66% 実行されますが、Android では遅延が発生する場合があります。以下の点から問題を探してみるとよいでしょう。 a. レイアウトに影響を与えるかどうか b. ハードウェアアクセラレーションを有効にするかどうか c. コストの高い属性はありますか (CSS シャドウ、グラデーション、background-attachment: fixed など) d. 再描画領域がある場合は、アニメーション領域を縮小する必要があります。このステップでは最適化は制限されています。 e. アニメーションを生成するには、transform を使用するようにし、height、width、margin、padding などは使用しないようにします。以下の例 1 と 2 を参照してください。 PS: トランスフォームを使用すると、ブラウザはこの要素のビットマップを 1 回生成し、アニメーションの開始時に GPU に送信して処理するだけで済みます。その後、ブラウザはレイアウト、描画、またはビットマップの送信操作を実行する必要がなくなります。したがって、ブラウザは GPU を最大限に活用して、さまざまな位置にビットマップをすばやく描画したり、回転やスケーリングを実行したりできます。つまり、変換アニメーションは GPU によって制御され、ハードウェア アクセラレーションをサポートし、ソフトウェア レンダリングは必要ありません。 3. アニメーション処理中にちらつきが発生する(通常はアニメーションの開始時に発生します) 解決: .キューブ{ -webkit-backface-visibility: 非表示; -moz-backface-visibility: 非表示; -ms-backface-visibility: 非表示; 背面の可視性: 非表示; -webkit-perspective: 1000; -moz-perspective: 1000; -ms-パースペクティブ: 1000; 視点: 1000; /* その他の変換プロパティはここに記載 */ } Webkitベースのブラウザでは、もう1つの効果的な方法は .キューブ{ -webkit-transform: translate3d(0, 0, 0); 変換: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); 変換: translate3d(0, 0, 0); /* その他の変換プロパティはここに記載 */ } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: HTML でスクロールバーを使用する際のヒントを共有する
>>: MySQLがブール型を返すいくつかの状況について簡単に説明します。
モバイル アプリを開発する場合、Web サイトが特定の高さまでスクロールしたときにコンテンツの一部を...
目次テクノロジースタックバックエンドビルドAPIフロントエンドウェブ構築ゲートウェイ建設ゲートウェイ...
問題は次のとおりです。mysql -uroot -p コマンドを入力しましたが、パスワードを忘れてし...
1: syslog.conf の概要異なるタイプの Unix の場合、標準の UnixLog システ...
ElementUIページングコンポーネントPagination in Vueの使用は参考になります。...
目次1. NFS の概要2. NFS構築1. NFSサーバーの構築2. NFSクライアントの構築3....
序文この記事を書いた主な理由は、チームリーダーが、ブラウザを使用してコンピューターのカメラを呼び出し...
目次defineComponent オーバーロード関数開発実務defineComponent 関数は...
目次MySQL 結果のソート - 集計関数環境クエリ結果の並べ替えクエリのグループ化と集約生徒の平均...
数日前、国産の XHTML エディタを紹介しました。今日は、有名な海外の Web デザイン ブログl...
コードと同様に、テーブルや列にコメントを追加して、他のユーザーがその機能を理解できるようにすることが...
この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有して...
目次1. 複数ページの違い2. SPAとMPA 3. Vue Cli スキャフォールディング構成1....
VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...
定義と使用@media クエリを使用すると、さまざまなメディア タイプに異なるスタイルを定義できます...