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

CSSのclipプロパティでアニメーションを実行する方法

CSSでclipプロパティにアニメーションを適用するには、@keyframesルールとanimationプロパティを組み合わせます。以下のサンプルコードでは、黄色い背景を持つdiv要素のクリップ領域(表示範囲)とbottom位置を同時に変化させ、3秒間隔で無限に繰り返すアニメーションを実装しています。

サンプルコード

<!DOCTYPE html>
<html>
   <head>
      <style>
         div {
            width: 200px;
            height: 300px;
            background: yellow;
            border: 10px solid red;
            animation: myanim 3s infinite;
            bottom: 30px;
            position: absolute;
            clip: rect(0,100px,50px,0);
         }
         @keyframes myanim {
            20% {
               bottom: 100px;
               clip: rect(0,150px,40px,0);
            }
         }
      </style>
   </head>
   <body>
      <h2>clipプロパティによるアニメーションの実行</h2>
      <div></div>
   </body>
</html>

コードのポイント

  • clip: rect(0, 100px, 50px, 0);
    要素の表示範囲を矩形として指定します。値は「上・右・下・左」の順にオフセットを定義し、この範囲外の部分は非表示になります。
  • @keyframes myanim
    アニメーションの進行が20%に達した時点でbottomclipの値を変化させることで、クリップ領域が滑らかに拡大しながら要素が上へ移動する演出を実現しています。
  • animation: myanim 3s infinite;
    適用するキーフレーム名、再生時間(3秒)、そして無限リピート(infinite)を指定しています。

補足:clipプロパティの現状

clipプロパティは仕様上すでに非推奨(deprecated)となっており、最新のWeb開発ではより柔軟な形状指定が可能なclip-pathプロパティの使用が推奨されています。ただし、CSSアニメーションとクリッピングの基本的な仕組みを理解するうえで、本例は非常に分かりやすい教材となります。

  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まで変化します