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

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

CSSのperspective(パースペクティブ)プロパティは、3D変換における奥行きの深さを定義するプロパティです。このプロパティにアニメーションを適用すると、視点の距離が変化することで、要素に動的な立体効果を与えることができます。

perspectiveプロパティの基本

perspectiveプロパティの値が小さいほど視点が要素に近づき、3D効果が強調されます。逆に値が大きいほど、遠くから見たような自然な奥行き表現になります。この値の変化を@keyframesで定義することで、アニメーションとして実装できます。

実装例

以下は、perspectiveプロパティにCSSアニメーションを適用するサンプルコードです。外側のコンテナ(demo1)のperspectiveの値を、3秒かけて200pxから100pxへと変化させています。

<!DOCTYPE html>
<html>
   <head>
      <style>
         #demo1 {
            position: relative;
            margin-left: 120px;
            height: 250px;
            width: 350px;
            padding: 10px;
            border: 1px solid orange;
            animation: myanim 3s infinite;
            perspective: 200px;
         }
         @keyframes myanim {
            50% {
               perspective: 100px;
            }
         }
         #demo2 {
            padding: 90px;
            position: absolute;
            border: 1px solid black;
            background-color: orange;
            transform: rotateX(60deg);
         }
      </style>
   </head>
   <body>
      <div id = "demo1">This is demo text in div1.
         <div id = "demo2">This is demo text in div2.</div>
      </div>
   </body>
</html>

コードのポイント

  • animation: myanim 3s infinite; … 「myanim」というアニメーションを3秒間かけて無限に繰り返します。
  • @keyframes myanim … アニメーションの途中(50%の時点)でperspectiveの値を100pxに変更します。これにより、視点が近づいたり遠ざかったりする効果が生まれます。
  • transform: rotateX(60deg); … 内側の要素(demo2)をX軸方向に60度回転させることで、perspectiveによる3D効果を視覚的にわかりやすくしています。

このコードを実行すると、オレンジ色の要素が奥行きを持って回転し、perspectiveの値の変化に合わせて立体感がダイナミックに変化する様子を確認できます。

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

    perspective-originプロパティとは perspective-originプロパティは、CSSの3D変換において、閲覧者が要素を見る位置(消失点)を指定するためのプロパティです。この値をアニメーションさせることで、奥行きのある立体的な動きを表現できます。 実装例 CSSでperspective-originプロパティにアニメーションを実装するには、以下のコードを実行してみてください。 <!DOCTYPE html> <html>    <head>       <style> &nb

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

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