CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSアニメーションのショートハンドプロパティ「animation」の使い方を解説

CSSアニメーションのショートハンドプロパティとは

アニメーション関連のすべてのプロパティを一括で設定できるのが、ショートハンド(省略記法)プロパティの animation です。このプロパティを使うことで、アニメーションの再生時間(duration)やアニメーション名(name)、タイミング関数、遅延時間、繰り返し回数などを、1行でまとめて指定できます。

animationプロパティで設定できる主な値

  • animation-name:適用する@keyframesの名前
  • animation-duration:アニメーション1回分の再生時間
  • animation-timing-function:速度の変化パターン(ease、linearなど)
  • animation-delay:アニメーション開始までの遅延時間
  • animation-iteration-count:繰り返し回数

ショートハンドプロパティの実装例

以下のコードを実行して、animationショートハンドプロパティの動作を確認してみましょう。この例では、黄色いボックスが2秒かけて緑から青へと背景色が変化するアニメーションを設定しています。

サンプルコード

<!DOCTYPE html>
<html>
   <head>
      <style>
         div {
            width: 150px;
            height: 200px;
            background-color: yellow;
            animation: myanim 2s
         }
         @keyframes myanim {
            from {
               background-color: green;
            }
            to {
               background-color: blue;
            }
         }
      </style>
   </head>
   <body>
      <div></div>
   </body>
</html>

コードの解説

上記の例では、animation: myanim 2s の部分がショートハンドプロパティによる指定です。「myanim」という名前のアニメーションを2秒間かけて再生することを意味しています。

また、@keyframes ルールでは、アニメーションの開始時点(from)で背景色を緑に、終了時点(to)で青に変化させる動きを定義しています。ページを読み込むと、要素はすぐに緑色へ切り替わり、その後2秒かけて青色へと滑らかに変化します。

ショートハンドプロパティを活用すれば、個別のプロパティを何行にも分けて書く必要がなく、スタイルシートをすっきりと保つことができます。

  1. CSSのperspectiveプロパティをアニメーションさせる方法を解説

    CSSのperspective(パースペクティブ)プロパティは、3D変換における奥行きの深さを定義するプロパティです。このプロパティにアニメーションを適用すると、視点の距離が変化することで、要素に動的な立体効果を与えることができます。perspectiveプロパティの基本perspectiveプロパティの値が小さいほど視点が要素に近づき、3D効果が強調されます。逆に値が大きいほど、遠くから見たような自然な奥行き表現になります。この値の変化を@keyframesで定義することで、アニメーションとして実装できます。実装例以下は、perspectiveプロパティにCSSアニメーションを適用するサンプ

  2. CSSのpadding-topプロパティでアニメーションを実行する方法

    CSSでは、padding-topプロパティもアニメーションの対象にすることができます。@keyframesルールの中でpadding-topの値を変化させることで、要素の上側の余白が滑らかに動くアニメーションを作成できます。実装のポイントアニメーションさせたい要素にanimationプロパティを設定します。@keyframes内で、進行度(例:30%)の時点でのpadding-topの値を指定します。アニメーション時間や繰り返し回数は自由に調整可能です。サンプルコード以下のコードでは、3秒間のアニメーションを無限に繰り返し、途中(30%の時点)でpadding-topが60pxまで変化します