コンピューター ウィンドウズ インターネット

小さな子供たちのためのCSSアニメーション。 アニメーションCSSの例と既製のコードアニメーションの種類css

私たちは最近それを見ました トランジションただの方法です アニメーションからのスタイルプロパティ オリジナル最終状態。

したがって、CSSの遷移は 明確なアニメーションの種類によって、ここで:

  • 状態は2つだけです。開始と終了です。
  • アニメーションはループしません。
  • 中間状態は、時間の関数によってのみ制御されます。

しかし、必要に応じて:

  • 制御する 中級州?
  • ループするアニメーション?
  • さまざまな種類のアニメーションを作成する アイテム?
  • でのみ特定のプロパティをアニメーション化する 半分の道?
  • 模倣する さまざまな時間関数さまざまなプロパティのために?

CSSのアニメーションでは、これらすべて、およびそれ以上のことが可能です。

アニメーションはミニムービーのようなもので、監督として、さまざまなシーン(キーフレーム)の俳優(HTML要素)に指示(スタイルルール)を与えます。

アニメーションのプロパティ

トランジションと同様に、アニメーションプロパティは 省略形他のいくつかのために:

  • アニメーション名:アニメーションの名前。
  • アニメーション期間:アニメーションの持続時間。
  • アニメーション-タイミング-機能:中間状態の計算方法。
  • アニメーション遅延:アニメーションはしばらくすると開始します。
  • Animation-iteration-count:アニメーションを実行する回数。
  • アニメーション方向:動きが反対方向に進むかどうか。
  • Animation-fill-mode:アニメーションの開始前と終了後に適用されるスタイル。

簡単な例

ダウンロードボタンをアニメーション化するために、アニメーションを書くことができます バウンス:

@keyframes bouncing(0%(bottom:0; box-shadow:0 0 5px rgba(0,0,0,0.5);)100%(bottom:50px; box-shadow:0 50px 50px rgba(0,0、 0,0.1);))。loading-button(アニメーション:バウンス0.5sキュービックベジエ(0.1,0.25,0.1,1)0s無限交互両方;)

まず、@ keyframesを使用して実際のバウンドアニメーションを作成し、名前を付ける必要があります。

使った 省略形アニメーションプロパティとすべての可能なオプションが含まれています:

  • アニメーション名:バウンス(キーフレームの名前と一致)
  • アニメーション時間:0.5秒(0.5秒)
  • アニメーション-タイミング-関数:キュービック-ベジェ(0.1,0.25,0.1,1)
  • アニメーション-遅延:0秒(遅延なし)
  • アニメーション-反復-カウント:無限(無限に再生可能)
  • アニメーション方向:交互(前後に移動)
  • アニメーション-塗りつぶしモード:両方

@keyframes

HTML要素をアニメーション化する前に、 キーフレームを使用してアニメーションを作成する..。 一般的に、キーフレームは全員です 中間ステップアニメーションで。 それらはパーセンテージを使用して決定されます:

  • 0%-アニメーションの最初のステップ。
  • 50%は、アニメーションの中間段階です。
  • 100%が最後のステップです。

それぞれ0%と100%の代わりに、キーワードfromとtoを使用することもできます。

33%、4%、さらには29.86%など、必要な数のキーフレームを定義できます。 実際には、それらのいくつかだけを書きます。

各キーフレームは CSSルール、これは、通常どおりCSSプロパティを記述できることを意味します。

アニメーションを定義するには、@ keyframesキーワードを 題名:

@keyframes around(0%(左:0;上:0;)25%(左:240px;上:0;)50%(左:240px;上:140px;)75%(左:0;上:140px ;)100%(左:0;上:0;))p(アニメーション:約4秒線形無限;)

開始0%と終了100%に含まれていることに注意してください 同じルール CSS。 これにより、アニメーションが完全にループします。 反復カウンターが無限に設定されているため、アニメーションは0%から100%になり、すぐに 戻る永久に0%などになります。

アニメーション名

名前アニメーションは少なくとも使用されます 2回:

  • 書き込み@keframesを使用したアニメーション。
  • を使用して Animation-nameプロパティ(または省略形のanimationプロパティ)を使用したアニメーション。
@keyframeswhatever(/ * ... * /).selector(animation-name:whatever;)

CSSクラス名と同様に、アニメーション名には次のもののみを含めることができます。

  • 文字(a-z);
  • 数字(0-9);
  • アンダースコア(_);
  • ハイフン(-)。

名前を数字または2つのハイフンで始めることはできません。

アニメーション-期間

遷移期間と同様に、アニメーション期間は次のように設定できます。 (1秒)または ミリ秒(200ms)。

セレクター(アニメーション-持続時間:0.5秒;)

デフォルトは0です。これは、アニメーションがまったくないことを意味します。

アニメーション-タイミング-機能

トランジションのタイミング関数と同様に、アニメーションのタイミング関数は次のように使用できます。 キーワード線形、イーズアウトなど、または任意で定義できます ベジェ曲線.

セレクター(アニメーション-タイミング-機能:イーズインアウト;)

デフォルトはeaseです。

CSSアニメーションはキーフレームを使用するため、設定できます 線形時間の関数と シミュレートする定義することによる特定のベジェ曲線 多くの非常に具体的なキーフレーム。 最先端のアニメーションについては、Bounce.jsをご覧ください。

アニメーション-遅延

遷移遅延と同様に、アニメーション遅延は次のように設定できます。 (1秒)または ミリ秒(200ms)。

デフォルトは0です。これは、遅延がないことを意味します。

複数のアニメーションが含まれている場合に便利です シリーズ.

A、.b、.c(アニメーション:バウンス1秒;)。b(アニメーション遅延:0.25秒;)。c(アニメーション遅延:0.5秒;)

アニメーション-反復-カウント

デフォルトでは、アニメーションはのみ再生されます 一度(値1)。 次の3種類の値を設定できます。

  • 2または3のような整数。
  • アニメーションの半分しか再生されない0.5のような小数。
  • アニメーションを無期限に繰り返す無限キーワード。
.selector(animation-iteration-count:infinite;)

アニメーション方向

アニメーション方向プロパティが決定します どのような順序でキーフレームが読み取られます。

  • 通常:0%で開始し、100%で終了し、再び0%で開始します。
  • 逆:100%で開始し、0%で終了し、再び100%で開始します。
  • 代替:0%から始まり、100%に進み、0%に戻ります。
  • 代替逆:100%から始まり、0%になり、100%に戻ります。

これは、アニメーションの反復回数が無限に設定されている場合に想像しやすくなります。

アニメーション-塗りつぶしモード

Animation-fill-modeプロパティは、何が起こるかを決定します フロントアニメーションの始まりと その完成。

を決定しながら 主要人員指定できます CSSルールこれは、アニメーションのさまざまなステップで適用されます。 これらのCSSルールでできるようになりました 衝突するすでに適用されていますアニメーション要素に。

アニメーション-塗りつぶしモードでは、ブラウザに次のことを伝えることができます アニメーションスタイル また適用する必要があります アニメーションの外.

想像してみましょう ボタン、これは:

  • ディフォルト;
  • になります アニメーションの開始時。
  • そして最後に アニメーションが完了したとき。

最終更新日:2016年6月11日

アニメーションは、要素のスタイルを変更する絶好の機会を提供します。 遷移時に、遷移が始まる前に要素が持っている初期値と、遷移が完了した後に設定される最終値を持つ一連のプロパティがあります。 一方、アニメーション中は、初期と最終の2つの値のセットだけでなく、多くの中間の値のセットも持つことができます。

アニメーションは、キーフレーム(キーフレーム)の順次変更に依存しています。 各キーフレームは、アニメーション化されたプロパティの値の1つのセットを定義します。 そして、そのようなキーフレームの連続的な変更は、実際にはアニメーションを表します。

実際、トランジションは同じモデルを使用します-2つのキーフレームも暗黙的に定義されます-開始と終了、そしてトランジション自体は開始から終了のキーフレームへのトランジションを表します。 この場合のアニメーションとの唯一の違いは、アニメーションに複数の中間キーフレームを定義できることです。

一般に、CSS3キーフレーム宣言は次の形式を取ります。

@keyframesanimation_name(から(/ *初期CSSプロパティ値* /)から(/ *最終CSSプロパティ値* /))

@keyframesキーワードの後に​​は、アニメーションの名前が続きます。 次に、少なくとも2つのキーフレームが中括弧で定義されます。 fromキーワードの後のブロックは開始キーフレームとして宣言され、ブロック内のtoキーワードの後、終了キーフレームが定義されます。 通常のスタイルが作成されるのと同じように、各キーフレーム内に1つ以上のCSSプロパティが定義されます。

たとえば、要素の背景色のアニメーションを定義しましょう。

CSS3でのアニメーション

この場合、アニメーションはbackgroundColorAnimationと呼ばれます。 アニメーションには任意の名前を付けることができます。

このアニメーションは、赤から青の背景への遷移を提供します。 アニメーションの終了後、div要素に定義されている色が設定されます。

アニメーションを要素にアタッチするには、そのanimation-nameプロパティをそのスタイルで適用します。 このプロパティの値は、適用するアニメーションの名前です。

また、animation-durationプロパティを使用して、アニメーション時間を秒またはミリ秒で設定する必要があります。 この場合、アニメーション時間は2秒です。

この定義では、ページが読み込まれた直後にアニメーションが開始されます。 ただし、ユーザーの操作に基づいてアニメーションをトリガーすることもできます。 たとえば、:hover疑似クラスのスタイルを定義することにより、マウスを要素の上に置いたときに開始するアニメーションを定義できます。

@keyframes backgroundColorAnimation(from(background-color:red;)to(background-color:blue;))div(width:100px; height:100px; margin:40px 30px; border:1px solid#333; background-color:# ccc;)div:ホバー(アニメーション名:backgroundColorAnimation;アニメーション期間:2秒;)

多くのキーフレーム

上記のように、アニメーションでは、2つの標準キーフレームに加えて、多くの中間キーフレームを使用できます。 トゥイーンを定義するには、トゥイーンを使用する必要があるアニメーションのパーセンテージを適用します。

@keyframes backgroundColorAnimation(from(background-color:red;)25%(background-color:yellow;)50%(background-color:green;)75%(background-color:blue;)to(background-color:violet ;))

この場合、アニメーションは赤で始まります。 アニメーション時間の25%が経過すると、色が黄色に変わり、さらに25%が緑色に変わります。

1つのキーフレームで複数のプロパティを一度にアニメーション化することもできます。

@keyframes backgroundColorAnimation(from(background-color:red; opacity:0.2;)to(background-color:blue; opacity:0.9;))

複数の個別のアニメーションを定義することもできますが、それらを一緒に適用します。

@keyframes backgroundColorAnimation(from(background-color:red;)to(background-color:blue;))@ keyframes opacityAnimation(from(opacity:0.2;)to(opacity:0.9;))div(width:100px; height: 100px;マージン:40px 30px;ボーダー:1px実線#333;背景色:#ccc;アニメーション名:backgroundColorAnimation、opacityAnimation;アニメーション-期間:2秒、3秒;)

アニメーションは、animation-nameプロパティの値としてコンマで区切られてリストされ、これらのアニメーションの時間も、animation-durationプロパティでコンマで区切られて設定されます。 アニメーションの名前とその時間は位置によって一致します。つまり、opacityAnimationアニメーションは3秒間続きます。

アニメーションの完成

通常、animation-durationプロパティで指定された時間間隔が終了すると、アニメーションも終了します。 ただし、追加のプロパティを使用すると、この動作をオーバーライドできます。

たとえば、animation-iteration-countプロパティは、アニメーションが繰り返される回数を決定します。 たとえば、3つのアニメーションが連続して繰り返されます。

アニメーション-反復-カウント:3;

アニメーションを無限に実行する場合、このプロパティには値infiniteが割り当てられます。

アニメーション-反復-カウント:無限;

繰り返すと、アニメーションは開始キーフレームから最初からやり直します。 しかし、animation-directionでは:alternate; 繰り返されるときのアニメーションの反対方向。 つまり、終了キーフレームで開始し、開始フレームに移行します。

アニメーション名:backgroundColorAnimation、opacityAnimation; アニメーション-期間:2秒、2秒; アニメーション-反復-カウント:3; アニメーション方向:代替;

アニメーションが終了すると、ブラウザはアニメーション要素のスタイルを、アニメーションが適用される前のスタイルに設定します。 ただし、animation-fill-mode:forwardsプロパティを使用すると、animatedプロパティの最終値を最後のフレームにあった値とまったく同じに設定できます。

アニメーション名:backgroundColorAnimation; アニメーション-期間:2秒; アニメーション-反復-カウント:3; アニメーション方向:代替; アニメーション-塗りつぶしモード:転送;

アニメーションの遅延

Animation-delayプロパティを使用して、アニメーションの遅延時間を定義できます。

アニメーション名:backgroundColorAnimation; アニメーション-期間:5秒; アニメーション-遅延:1秒; / * 1秒の遅延* /

アニメーションの滑らかさ機能

トランジションと同様に、すべて同じイージング機能をアニメーションに適用できます。

    線形:線形平滑度関数、プロパティは時間とともに均等に変化します

    イーズ:アニメーションを中央に向かって加速し、最後に向かって減速して、より自然な変化を提供するイーズ機能

    イーズイン:開始時にのみ加速するイーズ機能

    イーズアウト:開始時にのみ加速するイージング機能

    イーズインアウト:アニメーションを中央に向かって加速し、最後に向かって減速して、より自然な変化を提供するイーズ機能

    キュービックベジェ-アニメーションにキュービックベジェ関数を使用します

Animation-Timing-Functionプロパティは、滑らかさ関数を設定するために使用されます。

@keyframes backgroundColorAnimation(from(background-color:red;)to(background-color:blue;))div(width:100px; height:100px; margin:40px 30px; border:1px solid#333; Animation-name:backgroundColorAnimation ;アニメーション-持続時間:3秒;アニメーション-タイミング-機能:イーズインアウト;)

アニメーションプロパティ

アニメーションプロパティは、上記のプロパティを定義する簡単な方法です。

アニメーション:animation-nameanimation-durationanimation-timing-functionanimation-iteration-countanimation-directionanimation-delayanimation-fill-mode

アニメーションのタイトルとタイミングを提供する最初の2つのパラメーターは必須です。 残りの値はオプションです。

次の一連のプロパティを見てみましょう。

アニメーション名:backgroundColorAnimation; アニメーション-期間:5秒; アニメーション-タイミング-機能:イーズインアウト; アニメーション-反復-カウント:3; アニメーション方向:代替; アニメーション-遅延:1秒; アニメーション-塗りつぶしモード:転送;

このセットは、次のアニメーション定義と同等になります。

アニメーション:backgroundColorAnimation5sイーズインアウト3代替1sフォワード。

アニメーションでバナーを作成する

アニメーションの例として、簡単なアニメーションバナーを作成しましょう。

HTMLバナー

同時に進行中の3つのアニメーションがあります。 「バナー」アニメーションはバナーの背景色を変更し、text1およびtext2アニメーションは透明度設定を使用してテキストを表示および非表示にします。 最初のテキストが表示されている場合、2番目のテキストは表示されません。その逆も同様です。 したがって、バナー内のテキストのアニメーションを取得します。

CSS3アニメーションは広く使用されています。 最も初心者のウェブサイトビルダーでさえ、CSSアニメーションとは何か、そしてそれを作成する方法を理解する時が来ました。 CSS3アニメーションはブロックを動かすことであり、漫画のように見えると思われるかもしれません。 しかし、CSSアニメーションは、要素をあるポイントから別のポイントに移動するだけでなく、歪みやその他の変換も含みます。 初心者でもわかりやすくするために、すべてを段階的に説明しました。

1.CSS3アニメーションの基本的なプロパティ

どのCSS3プロパティがアニメーションの原因であるか、およびそれらが取ることができる値を理解するための小さな理論上のブロック。

  • アニメーション名-アニメーションの一意の名前(キーフレーム、以下で説明します)。
  • アニメーション-期間-アニメーションの継続時間(秒単位)。
  • アニメーション-タイミング-機能-アニメーションの速度曲線。 一見、非常にわかりにくいです。 例を示す方が常に簡単です。以下にそれらを示します。 次の値を取ることができます。 使いやすさ| イーズイン| イーズアウト| キュービックベジェ(n、n、n、n)。
  • アニメーション-遅延-アニメーションの開始前の秒単位の遅延。
  • アニメーション-反復-カウント-アニメーションの繰り返し回数。 単純に数値で設定するか、無限に指定するとアニメーションが無期限に実行されます。

これが基本的なプロパティであり、最初のCSS3アニメーションを作成するのに十分すぎるほどです。

理論から知って理解する必要がある最後のことは、キーフレームを作成する方法です。 これも簡単に実行でき、キーフレームが指定されている@keyframesルールを使用して実行されます。 このルールの構文は次のとおりです。

上記では、最初と最後のフレームを設定しました。 すべての中間状態は自動的に計算されます!

2.CSS3アニメーションの実際の例

理論はいつものように退屈であり、常に明確であるとは限りません。 実際の例ですべてを確認する方がはるかに簡単です。テスト用のHTMLページで自分で確認することをお勧めします。

プログラミング言語を学ぶとき、彼らは通常「Hello、world!」というプログラムを書きます。 しかし、私たちはプログラミング言語ではなく、ドキュメントの外観を記述するための言語を研究しています。 したがって、独自の「Hello、world!」があります。

例として、次のようにします。ある種のブロックをしましょう

最初は幅800ピクセルで、5秒で100ピクセルに縮小します。

すべてが明確に見えます-ブロックを圧縮する必要があります

以上です! それが実際にどのように見えるか見てみましょう。

まず、HTMLマークアップ。 1ページに1つの要素しか処理しないため、非常に簡単です。

1 <div class = "toSmallWidth">

そして、これがスタイルシートの内容です。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 .toSmallWidth(マージン:20px自動; / * 20pxの上下のパディングと中央の配置* /背景:赤; / *ブロックの背景が赤* /高さ:100px; / *ブロックの高さ100px * /幅:800px; / *初期幅800px * /-webkit-animation-name:animWidthSitehere; -webkit-アニメーション-期間:5秒; / *ブラウザChrome、Safari、Operaのプレフィックスが付いたプロパティ* /アニメーション名:animWidthSitehere; / *キーフレームの名前を指定します(下にあります)* /アニメーション-期間:5秒; / *アニメーションの長さを設定します* / } / *ブラウザChrome、Safari、Operaのプレフィックスが付いたキーフレーム* / @ -webkit-keyframes animWidthSitehere( from(width:800px;)to(width:100px;)) @keyframes animWidthSitehere( from(幅:800px;) / *ブロック幅が800pxの最初のキーフレーム* / to(幅:100px;) / *ブロック幅が100pxの最後のキーフレーム* / }

ご覧のとおり、最初と最後のキーフレームのみを指定し、すべての中間キーフレームは自動的に「構築」されました。

最初のCSS3アニメーションの準備が整いました。 得られた知識を統合するには、HTMLドキュメントとCSSファイルを作成し、そこに例のコードを挿入します(または手動で入力する方が適切です)。 そうすれば、あなたは確かにすべてを理解するでしょう。 次に、ブロックの高さ(高さが低くなるはずです)を使用して同じことを行い、材料を固定します。

3.CSS3アニメーションの例はより複雑です

上記では、CSS3アニメーションの作成がいかに簡単かを学びました。 自分の手でこれを実行しようとした場合は、プロセス全体をすでに理解しているので、より複雑で美しいアニメーションを作成する方法を知りたいと思います。 そしてそれを作成することは本当に可能です。 以下に、上記の例と同じ方法でアニメーションを作成する3つのレッスンがあります。

Webリソースを開発する慣行は、速度と品質の認識という2つの重要な傾向をもたらしました。 1つ目は開発者に仕事を迅速に行うことを義務付け、2つ目は便法の境界を定義します。

訪問者は、サイトを訪問するときに特定の目標を追求し、何がどこにあり、どのように機能するかについて一般的に受け入れられているアイデアに導かれます。 開発者は都合の良い仕事をすることができますが、より多くの来場者の注目を集めることに興味があるなら、彼らの意見を無視するのは不適切です。

アニメーションの構文とセマンティクス

CSSアニメーションプロパティは使いやすく、興味深い効果をすばやく作成できます。 Webページの要素を訪問者が期待する現代的な方法で動作させるために、スマートで独自のアニメーションを設計する必要はありません。 予想通り、需要に応じて、すべてが定義上機能します。

この例では、2つの要素について説明します。 1つ目は、右に移動し、それに比例してサイズが大きくなるインジケーターストリップです。 2番目の要素は、単に右に移動する画像です。

すべてのフレームがここに表示されているわけではありません。 この場合、プロパティはスムーズに実装されます。 ページの訪問者は、線のボリュームの増加と画像の動きに伴うスムーズな動きを観察します。 イーズインアウトタイプの代わりにさまざまな移動オプションを使用することで、移動を制御できます。 イーズインアウトオプションは、最初に加速し、最後に減速しますが、別の移動オプションを選択することもできます。

要素のオーバーレイと相互作用

アニメーションプロパティを持つすべての要素は、CSSによって互いに独立して、またページの全体的なフローとは無関係に考慮されます。 要素が互いに重ね合わされると、効果の組み合わせが得られ、その結果、新しい効果が得られます。

アニメーションの過程で要素のプロパティが変更された場合、色のオーバーレイの法則により、2つまたは3つの要素だけで非常に独創的な効果を得ることができます。

要素の描画は非常に重要です。 与えられた例では、ストリップは、2本の線が異なる色である画像から形成されます。 ストリップのサイズが大きくなると、それはのこぎりになります。のこぎりが動くと、それは動く波になります。 線とその傾きを操作することで、グラフィックの一般法則に従って効果を作成できます。

アニメーション時間を変更すると、非標準のソリューションにもなります。 要素の回転関数などの変換プロパティを使用すると、元の変更が生成されます。 例:

ここで、ストリップはその外観を不透明な状態から透明な状態に連続的に変化させます。 この場合、下の画像はその形状を変更するだけです。

アニメーション情報

CSSの場合:テキストアニメーションには特別な意味があります。 テキストは常に重要であり、特定の目的のためにWebページに表示されます。 ただし、テキストは常に画像よりも情報量が少なく、多くのスペースを占有します。

正しく書かれたテキストが訪問者によって適切に認識されるという保証は、特にサイト設計者が意味の表現の形式について独自の考えを持っている場合、画像の正しい理解への期待よりもはるかに高くなります。

以前、CSSアニメーションがレイアウト、忍び寄る線、点滅する時計、脈動するテキストの世界に登場したばかりの場合、現代のサイト構築では、それは通常の原則と見なされます。訪問者を煩わせることなく、Webリソースの機能を効果的に提示します。できるだけ。

このコンテキストでは、上記の例はいずれもテキスト情報を表すのに便利ですが、3DアニメーションとしてCSSを使用するのが最も実用的です。

ここで、「通常の」状態では、テキストはほとんどスペースを取りません。 主な単語を強調表示したり、意味を指定したりできます。 マウスをテキスト領域に合わせるとすぐに、CSS3Dアニメーションから通常の読み取り可能な状態に展開されます。

3Dデザインと組み合わせた省スペースオプションにより、情報をコンパクトに配置できます。 空いたスペースは、他の目的または関連する目的に使用できます。 CSSアニメーションを使用すると、必要な情報を適切なタイミングで利用できるようになります。

消費者向けアニメーション

高品質のWebリソースの作成における目立った成功は、奇妙な提起された1つの質問を考慮に入れていません。それは、なぜサイトのデザインが開発者の関心事なのかということです。

このサイトは芸術作品ではなく、美的目的のための創造的なプロセスの結果でもありません。 まず第一に、サイトは、所有者(開発者)の意見では、新しい訪問者をサイトに呼び込み、クライアントと協力する機会を提供する機能です。

製品を販売し、サービスを提供し、特定の仕事を実行します...訪問者は商品、サービス、および仕事のために来ます。 デザインやアニメーションは重要ですが、それでもオーナー(開発者)の意見よりも訪問者の意見の方が重要です。

通常のストアで顧客が常に正しい場合、開発者が提案された設計オプションを通じて思いついた方法で、オンラインストアですべてを行う必要があるのはなぜですか? CSSのコンテキストでのアニメーションは優れたツールですが、もう少し進んでみませんか。多くの消費者と同じように、機能とデザインを表現するためのオプションがたくさんあります。

「消費者アニメーション」の変形は、開発者が提案したもの、以前の消費者が選択したもの、そして現在の消費者が考えたものがある場合です。

皆さん、こんにちは! 今日は興味深いトピックを見ていきます-実際の例を使用してCSSアニメーションを作成します。 このチュートリアルは、美しいCSS百万ドルのロゴアニメーションを作成することで最高潮に達します。

クラス

Zapin

レッスン資料

  • ソース:ダウンロード
  • チュートリアルの基本的な例:https://codepen.io/agragregra/pen/PKNavm
  • チュートリアルのスターターテンプレート:https://github.com/agragregra/optimizedhtml-start-template

少し理論

アニメーションの例の作成を開始する前に、基本を確認する必要があります。 CSSアニメーション、CSSアニメーションを作成するための基本的な用語、プロパティ、およびルールを検討してください。

Adobe AfterEffectsや古いFlashProfessional(現在はAdobe Animate)などのアプリケーションでアニメーションを作成した経験がある場合は、キーフレーム、タイミング関数、モーションダイナミクスなどの概念に精通している必要があります。アニメーションの他の領域では、CSSを使用したページ上の要素のアニメーションに適用できます。 ただし、アプリケーションインターフェイスでの作業とは異なり、エディターでコードを記述してCSSアニメーションを作成します。

CSSルール@keyframes

CSSアニメーションの作成は、ブロック内でアニメーションの名前を宣言することから始まります @keyframesいわゆるアニメーションステップまたはキーフレームを定義します。

理論と基本を確認するために、純粋なCSSを使用します。将来的には、より複雑な例を使用して、Sassプリプロセッサーの使用を接続します。 Sassについて詳しくは、チュートリアルをご覧ください。 さらに、CSSの基本をより深く理解するために、レッスン「CSSの基本-小さなもののためのガイド」と「1つのレッスンのすべてのCSSセレクター」を読むことをお勧めします。

簡単な例を使用して、@ keyframes構造とキーフレームを見てみましょう。

@keyframes turn(0%(border-radius:0 0 0 0; transform:rotate(0deg);)25%(border-radius:50%0 0 0; transform:rotate(45deg);)50%(border-半径:50%50%0 0;変換:回転(90度);)75%(境界半径:50%50%50%0;変換:回転(135度);)100%(境界半径:50%50 %50%50%;変換:回転(180度);))

最初の行では、@ keyframesキーワードの後に​​「turning」という名前が付いていることがわかります。 これは、キーフレームのブロックの名前であり、以下で参照します。

宣言後、中括弧が開き(この例では、純粋なCSSで)、各キーフレームのプロパティが0%から100%まで順番に書き込まれます。 0%から100%の間で、50%、75%、さらには83%まで、必要な数の中間値を挿入できることに注意してください。 これは、アニメーションアプリケーションのタイムラインと非常によく似ており、2つの状態の間に任意の中間状態を追加できます。

さらに、キーフレームを含むこのコードブロックは、任意のCSSセレクターに適用できますが、目的のブロックから特定の動作を実現したい場合は、ほとんどの場合、特定のセレクター用に準備されています。

キーフレームのブロックを参照する

オブジェクトのキーフレームを設定した後(実際には、これは並行して、またはキーフレームでブロックにアクセスした後でも行われます)、新しく作成したブロックに目を向けることができます。 上記の例の次の簡単なコードを見てみましょう。

Div(幅:120px;高さ:120px;背景色:バイオレット;マージン:100px;アニメーション:2秒イーズアウト1秒無限交互;)

最後の行まで何も派手なことはありません。 ここでは、オブジェクトが最初にどのように見えるかを定義し、ブロックの最後の行で、「turning」という名前のキーフレームのブロックを参照します。

アニメーション:2秒のイーズアウト1秒の無限の交互を回します。

キーフレームの定義ですべてが比較的明確である場合、この行はすぐに説明する必要があります。 ご覧のとおり、最初に「アニメーション」CSSプロパティがあります。 これは、「margin:20px 30px 40px 50px」プロパティなどの省略形の表記であり、いくつかの個別のプロパティに分割できます。

類推により、アニメーション複合プロパティはいくつかの個別のプロパティに分割できます。

アニメーション名 @keyframesから参照されるアニメーションの名前
アニメーション-期間 CSSアニメーションの実行にかかる時間または時間。 秒(s)またはミリ秒(ms)で設定できます
アニメーション-タイミング-機能 時間関数、オブジェクトの動きのダイナミクス、またはプロパティの変更( 簡易-(デフォルト)アニメーションはゆっくり開始し、加速し、ゆっくり終了します。 線形-アニメーションは均等に行われます。 イーズイン-ゆっくりと開始し、最後のキーフレームまで加速します。 イーズアウト-すばやく開始し、最後に徐々に遅くなります。 イーズインアウト-ゆっくり開始し、ゆっくり終了します)
アニメーション-遅延 開始前のアニメーション遅延時間。 また、秒またはミリ秒で設定します。
アニメーション-反復-カウント アニメーションの繰り返し(反復)の数( 無限-無限、または単位なしで素数を設定できます)
アニメーション方向 アニメーションの方向、シーケンシャル、リバース、またはラウンドトリップ( 正常-(デフォルト)アニメーションは最初から最後まで再生され、停止します。 代わりの-最初から最後まで、反対方向に再生します。 交互-逆-最後から最初まで、そして後ろから再生します。 逆行する-アニメーションは最後から再生されます。)
アニメーション-再生状態 アニメーション再生制御( 一時停止(一時停止)、 ランニング(起動)など)。 適用可能:ホバーまたは必要に応じてJS関数から
アニメーション-塗りつぶしモード アニメーションの再生前後の要素の状態。 たとえば、値 後方アニメーションを適用した直後に、すべてのプロパティを元の状態に戻すことができます

ほとんどの場合、経験豊富な開発者はこれらすべてのプロパティを個別に記述しませんが、短い表記を使用し、その構造は次のとおりです。

アニメーション:(1.animation-name-name)(2.animation-duration-duration)(3.animation-timing-function dynamics of motion)(4.animation-delay-pause before start)(5.animation-iteration- count-実行回数)(6.animation-direction-direction)

アニメーション:animationname 2s linear 1s infinite reverse

この例から、@ keyframesのanimationnameブロックを参照し、アニメーションの継続時間を2秒に設定し、ダイナミクスは線形で、開始前の一時停止は1秒で、アニメーションは際限なく繰り返され、反対方向に実行されることがわかります。

前に言ったように、短い表記は「 アニメーション"、値が続きます。CSSアニメーションを作成するときに混乱が生じないように、その順序を忘れない方がよいでしょう。

ただし、ほとんどの場合、デフォルト値がほとんどのアニメーションのニーズに適合するため、これらのプロパティのほとんどは省略できます。 それらのいくつかは省略できますが、残りは前に検討した順序で示す必要があります。 一般に、アニメーションが機能するために必要なのは、複合プロパティに2つのパラメーター(name( アニメーション名)と期間( アニメーション-期間).