web-dev-qa-db-ja.com

複数のWebkitアニメーション

複数のWebkitアニメーションを一度に実行しようとしています。デモは ここに表示されます

HTML:

<body>
  <div class="dot"></div>
</body>

JavaScript:

$(function(){

    $('body').append('<div class="dot" style="left:100px; top:200px"></div>');


});

CSS:

body{
  background: #333;
}

.dot{
    background: -webkit-radial-gradient(center, ellipse cover, #f00 90%, #fff 10%);
    border-radius: 6px;
    background: red;
    display: block;
    height: 6px;
    position: absolute;
    margin: 40px 0 0 40px;
    width: 6px;
    -webkit-box-shadow: 0 0 2px 2px #222;




    -webkit-animation: shrink 2.s ease-out;

    -webkit-animation: pulsate 4s infinite ease-in-out;
  }


  @-webkit-keyframes shrink{
    0%{
      -webkit-box-shadow: 0 0 2px 2px #222;
      -webkit-transform: scale(2);
    }
    50%{
      -webkit-box-shadow: 0 0 2px 2px #222;
          -webkit-transform: scale(1.5);
      }
    100%{
      -webkit-box-shadow: 0 0 2px 2px #222;
          -webkit-transform: scale(1);
      }
  }

    @-webkit-keyframes pulsate{
      0%{
          -webkit-transform: scale(1);
      -webkit-box-shadow: 0 0 2px 2px #222;
      }
      50%{
          -webkit-transform: scale(1.1);
      -webkit-box-shadow: 0 0 2px 2px #111;
      }
    100%{ 
          -webkit-transform: scale(1);
      -webkit-box-shadow: 0 0 2px 2px #222;
      }
  }

.dotには2つのアニメーションがあります。

  1. シュリンク
  2. 脈動(見にくいが、そこにある)

おそらく、それらを同期する良い方法を見つける必要があります。アニメーションの縮小が完了したら、脈動します。一度に両方を実行することはできませんので、脈動は.dotでコメントアウトされています。

助言がありますか?ありがとう。

37
ialphan

複数のアニメーションを,で分離し、必要に応じて2番目のアニメーションに遅延を設定できます。

-webkit-animation: shrink 2s ease-out, pulsate 4s 2s infinite ease-in-out;

2番目のアニメーションの2sは遅延です


Chrome 43およびSafari 9/9.2であるため、-webkit-プレフィックスはBlackberryおよびUC(Android)ブラウザーにのみ必要です。したがって、新しい正しい構文は

animation: shrink 2s ease-out, pulsate 4s 2s infinite ease-in-out;
76
Giona