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

CSSで画像を右へスライドさせながらフェードアウトさせるアニメーションの実装方法

CSSを使えば、JavaScriptに頼らなくても、要素を右方向へスライドさせながらフェードアウトさせるアニメーションを簡単に実装できます。この記事では、@keyframesopacitytransformプロパティを組み合わせた「Fade Out Right(右へ消える)」エフェクトの具体的なコード例を紹介します。

実装コード例

以下のコードでは、ロゴ画像に対して10秒かけて右へ20px移動しながら、透明度が1(不透明)から0(完全に透明)へ変化するアニメーションを適用しています。「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 fadeOutRight {
            0% {
               opacity: 1;
               -webkit-transform: translateX(0);
            }
            100% {
               opacity: 0;
               -webkit-transform: translateX(20px);
            }
         }

         @keyframes fadeOutRight {
            0% {
               opacity: 1;
               transform: translateX(0);
            }
            100% {
               opacity: 0;
               transform: translateX(20px);
            }
         }

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

   </head>
   <body>

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

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

コードのポイント解説

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

@keyframes fadeOutRightの中では、開始時点(0%)にopacity: 1(不透明)とtranslateX(0)(元の位置)を指定し、終了時点(100%)にopacity: 0(完全に透明)とtranslateX(20px)(右へ20px移動)を指定しています。この2つの状態をつなぐことで、「右へ流れるように消えていく」という自然な演出が生まれます。

2. 所要時間と終了後の状態を制御する

animation-duration: 10s;でアニメーション全体の所要時間を10秒に設定しています。また、animation-fill-mode: both;を指定することで、アニメーションの開始前・終了後もキーフレームで定義したスタイルが保持され、意図しない表示への戻りを防げます。

3. ベンダープレフィックスについて

コードには-webkit-付きの記述が含まれています。これは古いSafariやiOS SafariなどWebKit系ブラウザ向けの互換性対応です。現在の主要ブラウザでは標準の@keyframesanimation-nameだけで動作しますが、レガシーブラウザもサポートしたい場合は併記しておくと安心です。

まとめ

単に要素を非表示にするだけでなく、移動と透明度の変化を組み合わせることで、より洗練されたUI演出が可能になります。translateX()の値やanimation-durationの秒数を変更すれば、移動距離やスピードを自由に調整できるので、サイトのデザインに合わせてカスタマイズしてみてください。

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

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

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

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