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

CSSで実現する「Bounce In Right」右からバウンスするアニメーション効果

CSSを使ってBounce In Right(右からバウンスイン)のアニメーション効果を実装するには、以下のコードを試してみてください。要素が画面の右側の外から飛び込んでくるように見え、少し跳ね返りながら最終的な位置に収まる、自然で印象的な動きを作れます。

コード例

<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 bounceInRight {
            0% {
               opacity: 0;
               -webkit-transform: translateX(2000px);
            }
            60% {
               opacity: 1;
               -webkit-transform: translateX(-30px);
            }
            80% {
               -webkit-transform: translateX(10px);
            }
            100% {
               -webkit-transform: translateX(0);
            }
         }

         @keyframes bounceInRight {
            0% {
               opacity: 0;
               transform: translateX(2000px);
            }
            60% {
               opacity: 1;
               transform: translateX(-30px);
            }
            80% {
               transform: translateX(10px);
            }
            100% {
               transform: translateX(0);
            }
         }

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

   </head>
   <body>

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

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

アニメーションの仕組み

このアニメーションは、@keyframesルールで定義した bounceInRight を要素に適用することで実現しています。各キーフレームの役割は次のとおりです。

  • 0%opacity: 0translateX(2000px) — 要素は画面の右側の外にあり、非表示の状態からスタートします。
  • 60%opacity: 1translateX(-30px) — 要素が表示され、目標位置をわずかに超えて左側へ移動します(オーバーシュート)。
  • 80%translateX(10px) — 一度右方向へ少し戻ることで、跳ね返りの表現を作ります。
  • 100%translateX(0) — 最終的に本来の位置に静止してアニメーションが完了します。

このように一度行き過ぎて戻る動きを組み合わせることで、機械的な直線移動ではなく、弾力のあるバウンス感を演出できます。

ブラウザ対応について

コード内の -webkit- で始まるプロパティは、SafariなどWebKit系ブラウザ向けのベンダープレフィックスです。現在の主要ブラウザでは標準の @keyframesanimation プロパティがサポートされているため、両方を記述しておくことで幅広い環境で同じ動作を保証できます。また、animation-fill-mode: both を指定することで、アニメーション開始前後もスタイルが維持され、意図しないちらつきを防げます。

  1. CSSでrotateInUpRight(右上へ回転しながら登場)アニメーションを実装する方法

    CSSの@keyframesとtransformプロパティを組み合わせることで、要素が右下を支点に回転しながらフェードインしてくる「rotateInUpRight」アニメーションを簡単に実装できます。rotateInUpRightアニメーションの仕組みこのアニメーションでは、以下のポイントを押さえています。transform-origin: right bottom … 要素の右下を回転の中心(支点)に設定します。transform: rotate(-90deg) … 開始時点では要素を-90度(左に倒れた状態)に傾けます。opacity … 開始時に0(透明)、終了時に1(不透明)へ変化させ

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

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