導入 アニメーションを使用すると、JavaScript や jQuery に依存せずに、純粋な CSS を使用して Web ページにさまざまなアニメーション効果を簡単に実装できます。 互換性 アニメーションはほとんどの主要なブラウザでサポートされています。まだ IE9 と互換性がある学生は注意して使用する必要があります。 CSS 座標系 アニメーションを理解する前に、まず CSS 座標系を理解する必要があります。これは、多くのアニメーション効果が要素の座標と密接に関連しているためです。 CSS3 では、Web ページは 2 次元平面ではなく、3 次元空間になります。水平方向、垂直方向、垂直画面方向は、それぞれ 3 次元座標系の x 軸、y 軸、z 軸に対応します (下図を参照)。矢印の方向は正で、その逆は負です (y 軸方向は従来の直交座標系とは逆であることに注意してください)。 アニメーション 1. 変換 Transform は中国語で「変換」と翻訳されますが、私は「変形」と呼ぶことを好みます (有名な Transformer は transformers と呼ばれます)。 transform 関数を使用すると、通常のドキュメント フローに影響を与えることなく、HTML 要素に平行移動、拡大縮小、回転、歪みなどのさまざまな変形を生成させることができます。 (1)翻訳する Translate は一般的に「翻訳」と翻訳されますが、translate は 3D 座標系で HTML 要素の位置を変更するために使用されるため、CSS では一般的に「翻訳」として使用されます。 Translate は、座標系内の任意の方向への移動をサポートします (x、y、z 方向のベクトルの任意の組み合わせを通じて)。単位は長さ単位とパーセンテージです (パーセンテージは移動する要素のサイズに相対的、x 軸は幅に相対的、y 軸は高さに相対的、z 方向では要素に「厚さ」がないため、z 方向はパーセンテージで表現できません)。例: 変換: translateX(100px) translateY(50%) translateZ(-100px); // または省略形 transform: translate3d(100px, 50%, 2em); 知らせ: (2)規模 スケールは「ズーム」を意味し、その名前が示すように、要素のサイズを変更するために使用されます。例えば: 変換: スケールX(2) スケールY(0.5) スケールZ(1); // または、transform を省略します: scale3d(2, 0.5, 1); (3)回転する Rotate は「回転」を意味し、x、y、z 軸を中心とした回転要素をサポートします。回転の正方向は、座標軸の正方向を向いて反時計回りです。上記の座標系図を参照してください。 // デフォルトの Z 軸周りの回転 transform: rotate(90deg); 変換: rotateX(30deg) rotateY(60deg) rotateZ(-90deg); translate や scale とは異なり、rotate は 変換: rotate3d(1, 2, 3, 90deg); スペースの都合上、最もよく使用される 3 つの変換関数のみをリストします。残りの変換関数については、MDN の変換関数を参照してください。 (4)組み合わせ 次のようなさまざまな変換方法を組み合わせることができます。 変換: translateY(200px) rotateZ(90deg) scale(3); 組み合わせたメソッドの実行順序は右から左です。つまり、最初にスケールが実行され、次に回転、最後に平行移動が実行され、効果が累積されます。メソッドを記述する順序は、最終的な効果に大きな影響を与えます。次の例を見てください。Y 軸に沿った移動とズームでは、順序によって結果が大きく異なります。 最初に移動してから拡大縮小すると、移動距離も比例して拡大縮小されますが、最初に拡大縮小してから移動した場合は、これは起こりません。そのため、transform を使用する場合は、 遷移 Transition は「移行」と翻訳され、プロセスを強調します。 CSS では、一定期間内に要素が 1 つの状態 (CSS 属性に対応) から別の状態に遷移する動的なプロセスを指します。どのように移行するか、どのくらいの時間を費やすかは私たちが決めることができます。 たとえば、マウスをクラウドの上に置いたときにクラウドを大きくするには、次のように記述します。 。雲{ 幅: 240ピクセル; 遷移: 1秒; } .cloud:hover{ 幅: 320ピクセル; } 効果: トランジションはトランスフォームと組み合わせて使用できます。たとえば、クラウドを大きくすると同時に回転させることができます。 .cloud:hover{ 幅: 320ピクセル; 変換: 回転(360度); } 効果: さまざまな効果に異なる遷移時間を設定できます。 。雲{ 幅: 240ピクセル; 遷移: 幅 1 秒、変換 0.5 秒。 } 効果の遅延時間を設定することもできます。たとえば、回転する前に幅が広がるまで待機します。 。雲{ 幅: 240ピクセル; 遷移: 幅 1 秒、変換 0.5 秒 1 秒; } 効果: 加速効果を制御するために、各効果に異なるタイミング関数を設定することもできます。 たとえば、回転速度を徐々に上げることができます。 。雲{ 幅: 240ピクセル; 遷移: transform 2s イーズイン; } .cloud:hover{ 変換: 回転(1080度); } 効果: タイミング関数については後ほど詳しく説明します。また、MDNのtransition-timing-functionsも参照してください。 キーフレーム (1)基本的な使い方 キーフレームは中国語で「キーフレーム」と翻訳されます。アニメーションにおいて非常に強力な機能です。簡単に言えば、アニメーションのキーポイントとキー状態を定義することでアニメーションを作成できます。キーフレームは、トランジションよりもアニメーションのプロセスと詳細をより強力に制御できます。 まずは例を見てみましょう(一部のコードは省略) html: <div class="sky"></div> <div class="草"></div> <div class="道路"> <div class="lines"></div> <img src="http://lc-jOYHMCEn.cn-n1.lcfile.com/a3f630c957a4b32d0221.png" class="マリオアニメーション"> </div> CS: ... .マリオ{ 位置: 絶対; 左: 0px; 幅: 100ピクセル; } .アニメーション{ アニメーション名: ドライブ; アニメーション期間: 1秒; アニメーションタイミング関数: linear; } @keyframes ドライブ { { 変換: translateX(0) } から to{ transform: translateX(700px) } } 効果: アニメーションには次のような短縮形もあります。 アニメーション: スライドイン 3 秒、イーズイン 1 秒、無限反転、両方実行中。 ただし、このメソッドには、書き込み順序に関する特定の要件があります (delay は、duration の後に書き込む必要があり、他のパラメータには順序の要件はなく、CSS は渡されたキーワードを通じてそれらを認識します)。 (2)アニメーションの遅延
アニメーション遅延: 2秒; (3)アニメーションフィルモード前進 上記の例では、マリオが右に移動してから開始点に戻ることがわかります。移動が完了した後もマリオを右側に留まらせたい場合はどうすればよいでしょうか。とても簡単です。アニメーションの塗りつぶしモードを設定するだけです。 アニメーション塗りつぶしモード: 前進
後ろ向き これに対して .アニメーション{ アニメーション名: ドライブ; アニメーション期間: 1秒; アニメーション塗りつぶしモード: 逆順; アニメーション遅延: 1秒; アニメーションタイミング関数: linear; } @keyframes ドライブ { { 変換: translateX(350px) } から to{ transform: translateX(700px) scale(2) } } 効果: ご覧のとおり、アニメーションが始まる直前に男性が 350 ピクセルに移動し、1 秒後にアニメーションが始まります。 両方 明らかに、どちらも順方向ルールと逆方向ルールの両方を同時に適用します。つまり、遅延中は最初のフレームの状態が最初に適用され、最後のフレームの状態が最後に保持されます。 (3)アニメーションリピート アニメーションがループする回数は アニメーションの反復回数: 3; // 無限ループ animation-iteration-count: infinite; このような: (4)アニメーションディレクション 普通 デフォルトの方向でもある通常の方向は、最初は from で、次に to です。 逆行する 通常の方向とは反対、つまり、最初に へ、次に から。例えば: .アニメーション{ ... アニメーション方向: 逆; } @keyframes ドライブ { { 変換: translateX(-100px) rotateY(180deg) } から to{ 変換: translateX(862px) rotateY(180deg)} } 効果: 代替 Alternate は「交互に」という意味で、つまり、通常と逆が交互に、最初は通常、次に逆になります。 逆交互 逆方向に交互に行います。最初は逆方向に、次に通常方向に行います。 (4)アニメーションタイミング機能 トランジションと同様に、キーフレームでもタイミング機能を設定できます。よく使用されるタイミング機能は次のようにまとめられます。
直感的な表現は次のようになります (codepen): 上記の既成の方法に加えて、ベジェ曲線を通じて速度曲線をカスタマイズすることもできます。 http://cubic-bezier.com で、独自のベジェ曲線を視覚的に作成できます。たとえば、最初は非常に遅く始まり、その後突然非常に速くなる曲線を作成します。 css: アニメーションタイミング関数: cubic-bezier(1,.03,1,-0.03); 効果: すごいですね! (5)チェーンアニメーション 複数のアニメーションを連続して使用できます。たとえば、運転中に小さな男がジャンプするようにしたい場合は、次のように記述します。 css: .マリオ{ ... アニメーション: ドライブ 3 秒、両方無限線形、ジャンプ 0.5 秒、1.2 秒、イーズイン アウト無限。 } @keyframes ジャンプ { 0% { 上: -40px; } 50% { 上: -120px; } 100% { 上: -40px; } } 効果: 練習する この記事の目的は、CSS3 アニメーションの基礎を普及させることです。アニメーションの知識を完全に網羅しているわけではありません。知識に触れなかったり説明しなかったりすることをお許しください。 上記の知識を習得すれば、アニメーションを使用して豊富なアニメーション効果を作成できます。以下は、codepen の小さな例です。 フルマリオデモ アニメーションポップアップ 商品をショッピングカートに飛ばす カードをめくる 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: MySQLは、統計クエリを最適化するために、sum、case、whenを巧みに使用します。
>>: テーブルを作成するための HTML dl、dt、dd タグとテーブル作成テーブル
Vueボタンコンポーネントのカスタムカプセル化コードは参考用です。具体的な内容は次のとおりです。ボタ...
1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...
その特性は次のとおりです。方向アクティブな字幕のスクロール方向を設定するコードは次のとおりです。 &...
Mysqldump は MySQL の論理バックアップに使用されます。高速ではありませんが、柔軟性が...
序文ストレス テスト中に、リソース使用のボトルネックによって発生する最も直接的なパフォーマンスの問題...
プロジェクト要件では、アップロードされたドキュメントの前処理が必要です。ユーザーが doc 形式でド...
目次1. コンポーネントの紹介2. ソースコード分析2.1 テンプレート2.2 スクリプト2.3 実...
1. はじめにMYSQL の MDL ロックは常に頭痛の種でした。ロックについて話すとき、通常は I...
目次1. ルートの遅延読み込みとは何ですか? 2. ルートの遅延読み込みの使用1. ルートの遅延読み...
1. Vue - 最初の vue-cli プログラムVueの開発はNodeJSに基づいています。実際...
最近何もすることがないのでCSSをいじっていますより良いアニメーションライブラリTweenMaxを見...
この記事では、WeChatアプレットがSMS認証コードのカウントダウンを送信するための具体的なコード...
1. 成果を達成する 2. バックエンドから返されるデータ形式 「リスト」: [ { "i...
Seurat は、単一細胞解析用の重量級の R パッケージです。使用したことがある人なら誰でも、その...
目次序文1. batがjsを実行する2. ターミナルにバージョン番号を入力してパッケージ化コマンドを...