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

CSSで画像を左方向へフェードアウトさせるアニメーションの実装方法

CSSを使って画像や要素に「左方向へのフェードアウト(Fade Out Left)」アニメーション効果を適用するには、@keyframesでアニメーションの動きを定義し、それをクラス経由で要素に紐づけます。透明度(opacity)を徐々に下げながら、transform: translateX()で要素を左へ移動させることで、自然に消えていく演出が実現できます。

実装例

以下のコードでは、10秒かけて要素がフェードアウトしながら20px左へスライドします。「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 fadeOutLeft {
            0% {
               opacity: 1;
               -webkit-transform: translateX(0);
            }
            100% {
               opacity: 0;
               -webkit-transform: translateX(-20px);
            }
         }
         @keyframes fadeOutLeft {
            0% {
               opacity: 1;
               transform: translateX(0);
            }
            100% {
               opacity: 0;
               transform: translateX(-20px);
            }
         }
         .fadeOutLeft {
            -webkit-animation-name: fadeOutLeft;
            animation-name: fadeOutLeft;
         }
      </style>
   </head>
   <body>
      <div id="animated-example" class="animated fadeOutLeft"></div>
      <button onclick="myFunction()">Reload page</button>
      <script>
         function myFunction() {
            location.reload();
         }
      </script>
   </body>
</html>

コードのポイント

  • animation-duration: 10s; … アニメーションが完了するまでの時間を10秒に設定しています。短くすればより素早い演出になります。
  • animation-fill-mode: both; … アニメーションの開始前・終了後もキーフレームのスタイル状態を保持するための指定です。
  • @keyframes fadeOutLeft … 開始時点(0%)では opacity: 1 で元の位置、終了時点(100%)では opacity: 0 で左へ20px移動した状態を定義しています。
  • ベンダープレフィックス(-webkit-) … 古いSafariなどWebKit系ブラウザ向けに併記しておくと互換性が向上します。現在の主要ブラウザでは標準の @keyframes のみで動作します。

移動距離を変更したい場合は translateX(-20px) の数値を調整してください。-50px にすればより大きく左へスライドします。また、ease-out などの animation-timing-function を追加すると、より滑らかで洗練された動きになります。

  1. CSSでrotateOutDownLeft(左下回転退場)アニメーション効果を作成する方法

    CSSの rotateOutDownLeft(左下回転退場)アニメーションは、要素が左下を基準点として回転しながら画面から消えていくエフェクトです。transform-origin で回転の軸を要素の左下隅に設定し、90度の回転と同時に opacity を0へ変化させることで、滑らかにフェードアウトする動きを実現できます。 実装のポイント transform-origin: left bottom — 回転の基準点を要素の左下に指定します。 @keyframes — アニメーションの開始時(0%)と終了時(100%)の状態を定義します。 animation-fill-mode: both —

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

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