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

CSSで回転しながら消えるアニメーション(rotateOut)を作る方法

CSSを使えば、要素が回転しながら画面から消えていく「rotateOut(回転退場)」アニメーションを簡単に実装できます。ここでは、@keyframesanimationプロパティを組み合わせた基本的な実装例を紹介します。

実装例

以下のコードでは、画像を含む要素が10秒かけて200度回転しながらフェードアウトします。「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 rotateOut {
            0% {
               -webkit-transform-origin: center center;
               -webkit-transform: rotate(0);
               opacity: 1;
            }
            100% {
               -webkit-transform-origin: center center;
               -webkit-transform: rotate(200deg);
               opacity: 0;
            }
         }

         @keyframes rotateOut {
            0% {
               transform-origin: center center;
               transform: rotate(0);
               opacity: 1;
            }
            100% {
               transform-origin: center center;
               transform: rotate(200deg);
               opacity: 0;
            }
         }

         .rotateOut {
            -webkit-animation-name: rotateOut;
            animation-name: rotateOut;
         }
      </style>

   </head>
   <body>

      <div id = "animated-example" class = "animated rotateOut"></div>
      <button onclick = "myFunction()">Reload page</button>

      <script>
         function myFunction() {
            location.reload();
         }
      </script>
   </body>
</html>

コードのポイント

1. @keyframesでアニメーションの動きを定義

@keyframes rotateOutでは、アニメーションの開始(0%)と終了(100%)の状態を指定しています。開始時はopacity: 1(不透明)で回転角0度、終了時はopacity: 0(完全に透明)で200度回転した状態になります。これにより、要素がくるっと回りながら消えていく演出が生まれます。

2. transform-originで回転の中心を指定

transform-origin: center center;を指定することで、要素の中央を軸として回転します。この値を変更すれば、左上や右下など、任意の位置を中心に回転させることも可能です。

3. ベンダープレフィックスによる互換性対応

-webkit-が付いたプロパティは、SafariなどWebKit系ブラウザ向けの記述です。現在のモダンブラウザでは標準の@keyframesanimationプロパティが広くサポートされていますが、古いブラウザでも動作するよう、両方の記述を併記しています。

4. animation-fill-mode: bothの役割

animation-fill-mode: both;を指定すると、アニメーション終了後も最終キーフレームのスタイルが適用され続けます。そのため、アニメーションが完了した要素は透明な状態のまま維持され、画面上に残りません。

まとめ

回転して消えるアニメーションは、モーダルを閉じる演出や画像の切り替えなど、さまざまな場面で活用できます。animation-durationや回転角度の数値を変更するだけで、動きの速さや印象を自由に調整できるので、ぜひ自分のプロジェクトに合わせてカスタマイズしてみてください。

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