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

CSSで実現する「右下を基点に回転して登場する」アニメーション効果(rotateInDownRight)

CSSを使えば、要素が画面の右下を基点として回転しながら登場する「rotateInDownRight」アニメーションを簡単に実装できます。このエフェクトは、@keyframesで回転角度と透明度を制御し、transform-originプロパティで回転の基点を指定するのがポイントです。

以下のコードを実行すると、ロゴ画像が右下を軸に90度傾いた状態からスタートし、徐々に正面へ回転しながらフェードインして表示されます。

実装例

<html>
   <head>
      <style>
         .animated {
            background-image: url(/css/images/logo.png);
            background-repeat: no-repeat;
            background-position: left top;
            padding-top:95px;
            margin-bottom:60px;
            -webkit-animation-duration: 10s;
            animation-duration: 10s;
            -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
         }
         @-webkit-keyframes rotateInDownRight {
            0% {
               -webkit-transform-origin: right bottom;
               -webkit-transform: rotate(90deg);
               opacity: 0;
            }
            100% {
               -webkit-transform-origin: right bottom;
               -webkit-transform: rotate(0);
               opacity: 1;
            }
         }
         @keyframes rotateInDownRight {
            0% {
               transform-origin: right bottom;
               transform: rotate(90deg);
               opacity: 0;
            }
            100% {
               transform-origin: right bottom;
               transform: rotate(0);
               opacity: 1;
            }
         }
         .rotateInDownRight {
            -webkit-animation-name: rotateInDownRight;
            animation-name: rotateInDownRight;
         }
      </style>
   </head>
   <body>
      <div id = "animated-example" class = "animated rotateInDownRight"></div>
      <button onclick = "myFunction()">Reload page</button>
      <script>
         function myFunction() {
            location.reload();
         }
      </script>
   </body>
</html>

コードのポイント解説

1. transform-origin で回転の基点を指定する

transform-origin: right bottom; を指定することで、要素の右下隅が回転の中心になります。この指定がない場合、要素は既定値である中央を基点に回転してしまうため、「右下から回り込むような」自然な演出にはなりません。

2. @keyframes で開始と終了の状態を定義する

0%(アニメーション開始時)では rotate(90deg)opacity: 0; を設定し、要素が90度傾いた非表示状態からスタートします。100%(終了時)で rotate(0)opacity: 1; へ遷移させることで、回転とフェードインが同時に起こる滑らかな効果を実現しています。

3. ベンダープレフィックスで幅広いブラウザに対応

サンプルでは古いWebKit系ブラウザ向けに -webkit- プレフィックス付きの記述も併記しています。近年のモダンブラウザ(Chrome・Firefox・Edge・Safariなど)では標準の @keyframes のみで動作しますが、対応ブラウザの範囲を広げたい場合は両方を記述しておくと安心です。

4. アニメーションを繰り返し確認する方法

サンプルの「Reload page」ボタンをクリックするとページが再読み込みされ、アニメーションを何度でも再生できます。実際のWebサイトでは、ページ読み込み時やスクロールに応じてクラスを付与する形で活用すると、バナーやロゴの登場演出などに効果的です。

  1. CSSで左上方向へ回転して消えるアニメーション(rotateOutUpLeft)を作る方法

    CSSのrotateOutUpLeftは、要素が左下を軸として反時計回りに回転しながら画面外へ消えていくアニメーション効果です。@keyframesで回転角度と不透明度(opacity)の変化を定義し、animation-nameを使って対象の要素に適用します。 実装例 以下のコードでは、ロゴ画像が10秒かけて左下を基点に-90度回転しながらフェードアウトしていきます。「Reload page」ボタンをクリックするとページが再読み込みされ、アニメーションを何度でも確認できます。 <html> <head> <style> .animated { bac

  2. CSSで実現する「右下を支点に回転しながら消える」アニメーション効果の作り方

    CSSのアニメーションを使えば、要素を右下(right bottom)を支点として回転させながらフェードアウトさせる演出が簡単に実装できます。この効果は一般的に rotateOutDownRight と呼ばれ、要素が画面から消える際の退場アニメーションとしてよく活用されます。rotateOutDownRightアニメーションの仕組みこのアニメーションでは、以下のCSSプロパティが重要な役割を果たします。transform-origin: right bottom; … 回転の基準点を要素の右下に設定します。transform: rotate(-90deg); … 要素を反時計回りに90度回転さ