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

CSSでrotateOutUpRight(右上へ回転して退場)アニメーションを実装する方法

CSSを使えば、要素が右下を軸として時計回りに90度回転しながら画面から消えていく「rotateOutUpRight(右上へ回転して退場)」アニメーションを簡単に実装できます。この記事では、@keyframesルールとtransform-originプロパティを組み合わせた具体的な実装例を紹介します。

rotateOutUpRightアニメーションの仕組み

このアニメーションは、以下のCSSプロパティを組み合わせて実現します。

  • transform-origin:回転の軸となる基準点を指定します。ここでは「right bottom(右下)」を指定しています。
  • transform: rotate():要素を回転させます。0度から90度へ変化させることで、時計回りの回転を表現します。
  • opacity:アニメーションの進行に合わせて透明度を1から0へ変化させ、フェードアウト効果を加えます。
  • @keyframes:アニメーションの開始(0%)から終了(100%)までの各段階におけるスタイルを定義します。

実装例

以下のコードは、ロゴ画像が右下を軸に回転しながらフェードアウトしていくサンプルです。「Reload page」ボタンをクリックするとページが再読み込みされ、アニメーションを何度でも確認できます。

<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 rotateOutUpRight {
            0% {
               -webkit-transform-origin: right bottom;
               -webkit-transform: rotate(0);
               opacity: 1;
            }
            100% {
               -webkit-transform-origin: right bottom;
               -webkit-transform: rotate(90deg);
               opacity: 0;
            }
         }
         @keyframes rotateOutUpRight {
            0% {
               transform-origin: right bottom;
               transform: rotate(0);
               opacity: 1;
            }
            100% {
               transform-origin: right bottom;
               transform: rotate(90deg);
               opacity: 0;
            }
         }
         .rotateOutUpRight {
            -webkit-animation-name: rotateOutUpRight;
            animation-name: rotateOutUpRight;
         }
      </style>
   </head>
   <body>
      <div id = "animated-example" class = "animated rotateOutUpRight"></div>
      <button onclick = "myFunction()">Reload page</button>
      <script>
         function myFunction() {
            location.reload();
         }
      </script>
   </body>
</html>

コードのポイント

  • -webkit-接頭辞付きの記述:古いSafariやChromeなどWebKit系ブラウザ向けに、ベンダー接頭辞付きのプロパティを併記しています。現在のモダンブラウザでは、標準の@keyframesだけで動作します。
  • animation-fill-mode: both:アニメーションの開始前・終了後にもキーフレームで指定したスタイルを適用する設定です。これにより、アニメーション終了後に要素が完全に非表示の状態を維持できます。
  • animation-duration: 10s:アニメーション全体の所要時間を10秒に設定しています。より短くすれば、素早い回転エフェクトになります。

transform-originの値を変更すれば、回転の軸の位置を自由に調整できます。たとえば「left bottom」にすると左下を軸に回転し、「center center」にすると要素の中央を軸に回転します。用途に応じてカスタマイズしてみてください。

  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度回転さ