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

CSSでFlip Out Y(Y軸反転)アニメーション効果を実装する方法

CSSでFlip Out Yアニメーションを実装する

「Flip Out Y」は、要素がY軸(縦軸)を中心に90度回転しながらフェードアウトしていくアニメーション効果です。CSSの@keyframestransformプロパティを組み合わせることで、JavaScriptに頼らず簡単に実装できます。

このアニメーションのポイントは以下の通りです。

  • perspective(400px): 立体的な回転に見せるための奥行き(遠近感)を設定します。
  • rotateY(): 0度から90度へ回転させることで、要素が横方向に倒れていく動きを作ります。
  • opacity: 回転と同時に透明度を1から0へ変化させ、滑らかなフェードアウトを実現します。
  • backface-visibility: 要素の裏面の表示・非表示を制御します。

以下のコードを実行すると、ロゴ画像がY軸方向に反転しながら消えていくアニメーションを確認できます。「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: 1s;
            animation-duration: 1s;
            -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
         }
         @-webkit-keyframes flipOutY {
            0% {
               -webkit-transform: perspective(400px) rotateY(0deg);
               opacity: 1;
            }
            100% {
               -webkit-transform: perspective(400px) rotateY(90deg);
               opacity: 0;
            }
         }
         @keyframes flipOutY {
            0% {
               transform: perspective(400px) rotateY(0deg);
                  opacity: 1;
            }
            100% {
               transform: perspective(400px) rotateY(90deg);
               opacity: 0;
            }
         }
         .flipOutY {
            -webkit-backface-visibility: visible !important;
            -webkit-animation-name: flipOutY;
            backface-visibility: visible !important;
            animation-name: flipOutY;
         }
      </style>
   </head>
   <body>

      <div id = "animated-example" class = "animated flipOutY"></div>
      <button onclick = "myFunction()">Reload page</button>
     
      <script>
         function myFunction() {
            location.reload();
         }
      </script>
   </body>
</html>

コードの解説

.animatedクラスでは、アニメーションの基本設定として再生時間(animation-duration: 1s)とフィルモード(animation-fill-mode: both)を指定しています。-webkit-プレフィックス付きの記述は、Safariなど古いWebKit系ブラウザ向けの互換性対応です。

@keyframes flipOutYでは、アニメーションの開始時点(0%)で要素を正面(rotateY: 0度)に置き、終了時点(100%)で90度回転させて不透明度を0にしています。これにより、要素が回転しながら消えていく演出が完成します。

この手法は、モーダルを閉じるときやカード型UIの切り替えなど、要素を退場させる場面で活用すると、ユーザー体験を向上させる洗練されたエフェクトになります。

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

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

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

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