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

CSSで実現するフェードインダウン(Fade In Down)アニメーションの実装方法

CSSを使えば、JavaScriptに頼らずに画像や要素へ多彩なアニメーション効果を加えることができます。ここでは、要素が上から降りてくるように表示されるフェードインダウン(Fade In Down)アニメーションの実装方法を、サンプルコード付きで解説します。

フェードインダウンアニメーションとは

フェードインダウンとは、要素が初期状態では透明で少し上の位置にあり、アニメーションとともに不透明になりながら下へ移動して表示される効果です。ページ読み込み時の演出や、コンテンツの段階的な表示など、さまざまな場面で活用できます。

実装例

以下のコードでは、背景画像として設定したロゴに対して、10秒かけてフェードインダウンするアニメーションを適用しています。「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 fadeInDown {
            0% {
               opacity: 0;
               -webkit-transform: translateY(-20px);
            }
            100% {
               opacity: 1;
               -webkit-transform: translateY(0);
            }
         }

         @keyframes fadeInDown {
            0% {
               opacity: 0;
               transform: translateY(-20px);
            }
            100% {
               opacity: 1;
               transform: translateY(0);
            }
         }

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

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

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

   </body>
</html>

コードのポイント

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

@keyframes fadeInDownでは、アニメーションの開始(0%)と終了(100%)の状態を指定しています。開始時はopacity: 0(完全に透明)でtranslateY(-20px)(本来の位置より20px上)にあり、終了時にはopacity: 1(不透明)で元の位置へ移動します。この組み合わせにより、「上から降りてきて徐々に現れる」自然な演出が実現できます。

ベンダープレフィックスへの対応

-webkit-が付いた記述は、古いSafariやChromeなどWebKit系ブラウザ向けのものです。現在の主要ブラウザでは標準の@keyframesanimationプロパティがサポートされているため必須ではありませんが、古いブラウザとの互換性を保ちたい場合は併記しておくと安心です。

アニメーションの適用と再生時間の制御

animation-durationでアニメーションの長さを10秒に設定しています。また、animation-fill-mode: bothを指定することで、アニメーション開始前・終了後もスタイルが適切に維持され、表示のちらつきを防げます。HTML側では要素にanimated fadeInDownという2つのクラスを付与するだけで、アニメーションが適用される仕組みです。

まとめ

フェードインダウンアニメーションは、@keyframesanimationプロパティを組み合わせるだけで簡単に実装できます。数値を変更すれば移動距離や再生時間を自由に調整できるので、サイトのデザインに合わせてカスタマイズしてみてください。

  1. CSSで実現する「右下を基点に回転して登場する」アニメーション効果(rotateInDownRight)

    CSSを使えば、要素が画面の右下を基点として回転しながら登場する「rotateInDownRight」アニメーションを簡単に実装できます。このエフェクトは、@keyframesで回転角度と透明度を制御し、transform-originプロパティで回転の基点を指定するのがポイントです。 以下のコードを実行すると、ロゴ画像が右下を軸に90度傾いた状態からスタートし、徐々に正面へ回転しながらフェードインして表示されます。 実装例 <html>    <head>       <style>   &nbs

  2. CSSで左下を基点に回転しながら表示されるアニメーション(rotateInDownLeft)を実装する方法

    CSSを使えば、要素が左下を軸に回転しながらフェードインする「rotateInDownLeft」アニメーションを簡単に実装できます。この効果は、ロゴやバナーを目立たせたい場合などに活用できる定番の演出です。以下のサンプルコードを実行して、実際の動きを確認してみてください。 サンプルコード <html>    <head>       <style>          .animated {