JS アニメーションの代わりに CSS アニメーションを使用する必要があるのはなぜですか? JavaScript の効率が低い主な理由は、DOM の操作とページアニメーションの使用の 2 つです。 通常、視覚的なアニメーション効果を実現するために、DOM と CSS を頻繁に操作します。これには、JS の効率が低下する原因となる 2 つの要因が含まれます。DOM と CSS を頻繁に操作すると、ブラウザは常にリフローと再描画を実行します。PC 版ブラウザでは、ブラウザの使用可能メモリが比較的大きいため、ユーザーはページ アニメーションによるリペイントとリフローを肉眼でほとんど確認できないため、エンジニアはアニメーションによるパフォーマンスの問題をあまり考慮する必要がありません。ただし、モバイル デバイスでは状況が大きく異なります。モバイル デバイスの組み込みブラウザに割り当てられるメモリは、PC 版ブラウザほど大きくありません。現在、CSS3 を最もよくサポートしているのは Webkit ブラウザです。Webkit カーネルを搭載したブラウザの中で、1 番目は Safari、2 番目は Chrome です。 JS シミュレーション アニメーションの代わりに CSS3 アニメーションを使用する利点:
CSS3 アニメーションは、2D、3D、および通常のアニメーション属性インターフェイスを提供します。ページ上の任意の要素の任意の属性で機能します。CSS3 アニメーションは C 言語で記述され、システムレベルのアニメーションです。 jsアニメーションを使用するかcss3アニメーションを使用するかは、開発者がさまざまなニーズに基づいてさまざまな選択を行う必要がありますが、基本的な原則に従う必要があります。2Dアニメーションを実行する必要がある場合は、CSS3トランジションまたはアニメーションを使用する必要があります。 CSS3 アニメーションと JavaScript シミュレーション アニメーションの違いは次のとおりです。
CSS3 プロパティ 2D変換 CSS3 変換を使用すると、要素を移動、拡大縮小、回転、伸縮、または長くすることができます。 変換属性は2Dまたは3Dに変換される要素に適用されます。 transform-origin属性、変換された要素の位置を設定する 1. translate() メソッドは、左 (X 軸) と上 (Y 軸) の位置で指定されたパラメータに従って、現在の要素の位置から移動します。 div { 変換: translate(50px,100px); -webkit-transform: translate(50px,100px); /* Safari と Chrome */ } 2.rotate() メソッドは、要素を指定された度数で時計回りに回転します。負の値も許可されており、要素は反時計回りに回転します。 div { 変換: 回転(30度); -webkit-transform: rotate(30deg); /* Safari と Chrome */ } 3. scale() メソッドでは、幅 (X 軸) と高さ (Y 軸) のパラメータに応じて要素のサイズが増減します。 div { -webkit-transform: scale(2,3); /* Safari / transform: scale(2,3); / 標準構文*/ } 4.skew([,]) には、それぞれ X 軸と Y 軸の傾斜角度を表す 2 つのパラメータ値が含まれます。2 番目のパラメータが空の場合、デフォルト値は 0 です。負のパラメータは、反対方向への傾斜を示します。 div { 変換: skew(30deg,20deg); -ms-transform:skew(30deg,20deg); /* IE 9 / -webkit-transform: skew(30deg,20deg); / Safari および Chrome */ } 3D変換 translate3d(x,y,z) は 3D 変換を定義します。 translateX(x)は、X軸の値のみを使用して3D変換を定義します。 translateY(y) は、Y 軸の値のみを使用して 3D 変換を定義します。 translateZ(z) は、Z 軸の値のみを使用して 3D 変換を定義します。 scale3d(x,y,z) は 3D スケーリング変換を定義します。 scaleX(x) は、x 軸に沿った値を指定して 3D スケーリング変換を定義します。 scaleY(y) は、Y 軸に沿った値を指定して 3D スケーリング変換を定義します。 scaleZ(z) は、z 軸に沿った値を指定して 3D スケーリング変換を定義します。 rotate3d(x,y,z,angle) は 3D 回転を定義します。 rotateX(angle) は、X 軸を中心とした 3D 回転を定義します。 rotateY(angle) は、Y 軸を中心とした 3D 回転を定義します。 rotateZ(angle) は、Z 軸を中心とした 3D 回転を定義します。 perspective(n) 3D 変換された要素の透視ビューを定義します。 CSS3 トランジション transition ショートハンド プロパティ。1 つのプロパティで 4 つの transition プロパティを設定するために使用されます。 transition-property トランジションが適用される CSS プロパティの名前を指定します。 transition-duration は、遷移効果にかかる時間を定義します。デフォルトは0です。遷移期間: 5秒; transition-timing-function は、トランジション効果のタイミング カーブを指定します。デフォルトは「ease」です。 linear は、同じ速度で開始および終了する遷移効果を指定します (cubic-bezier(0,0,1,1) に相当)。 easy は、ゆっくり始まり、その後加速し、そしてゆっくり終わる遷移効果を指定します (cubic-bezier(0.25,0.1,0.25,1))。 easy-in は、ゆっくり始まる遷移効果を指定します (cubic-bezier(0.42,0,1,1) に相当)。 easy-out は、ゆっくり終了する遷移効果を指定します (cubic-bezier(0,0,0.58,1) に相当)。 easy-in-out は、ゆっくりと開始および終了する遷移効果を指定します (cubic-bezier(0.42,0,0.58,1) に相当)。 cubic-bezier(n,n,n,n) は、cubic-bezier 関数で独自の値を定義します。可能な値は0から1までの数値です。 transition-delay は、遷移効果がいつ開始するかを指定します。デフォルトは0です。遷移遅延: 2秒; CSS3アニメーション @keyframes はアニメーションを指定します。 animation は、animation-play-state プロパティを除くすべてのアニメーション プロパティのショートカット プロパティです。 animation-name は、@keyframes アニメーションの名前を指定します。 animation-duration は、アニメーションが 1 サイクルを完了するのにかかる秒数またはミリ秒数を指定します。デフォルトは0です。 animation-timing-function は、アニメーションの速度曲線を指定します。デフォルトは「ease」です。 animation-fill-mode は、アニメーションが再生されていないとき (アニメーションが完了したとき、またはアニメーションの再生が開始されない遅延があるとき) に要素に適用するスタイルを指定します。 animation-delay はアニメーションがいつ開始するかを指定します。デフォルトは0です。 animation-iteration-count はアニメーションを再生する回数を指定します。デフォルトは 1 です。 animation-direction は、次のサイクルでアニメーションを逆方向に再生するかどうかを指定します。デフォルトは「通常」です。 animation-play-state は、アニメーションが実行中か一時停止中かを指定します。デフォルトは「実行中」です。 要約する 上記は、CSS3 を使用してトランジション効果とアニメーション効果を実現する方法についてご紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます! |
<<: 選択/フォーカス時にすべてのオプションをリストする現在のより良い方法
1. 依存関係をダウンロードするnpm インストール @antv/データセットnpm インストール ...
最近、Oracle、MySQL、SQL Server 2005 のデータ ページング クエリについて...
<!DOCTYPE ヘムル パブリック> <html> <ヘッド&g...
目次1. ショッピングカートの例2. コードの実装3. まとめ1. ショッピングカートの例一連の学習...
目次MySQL フェデレーテッド クエリ実行戦略。実行計画フェデレーテッドクエリオプティマイザーMy...
目次1.同時アクセス制御2. 取引1. トランザクションは ACID 原則に従います。 2. トラン...
Dockerfile を使用すると、ユーザーはカスタム イメージを作成できます。基本構造Docker...
init_connectの役割init_connect は通常、接続が来たときに、自動コミットを 0...
目次1. HTMLを書く、最初のVueプログラムビューテンプレートとデータに注意してください決定ルー...
この記事は、Element公式サイトとQiniu Cloud公式サイトを使用しています。 eleme...
1. 仮想マシン(物理マシン)をインストールする仮想マシンまたは物理マシンにインストールできます。 ...
目次序文1. catコマンド: 2. moreコマンド: 3. lessコマンド: 4. headコ...
HTML デザインパターン学習ノート今週は主にHTMLデザインパターンを学びました。学習内容をまとめ...
ネットワークリクエストを送信すると、次の保存情報が表示されます。おめでとうございます。ドメインを越え...
ここでは、あまり使われていない、または誤解されている 10 個の HTML タグを紹介します。あまり...