84

css3 アニメーションを作成しましたが、一度だけ実行されます。アニメーションは正常に動作しますが、アニメーションが終了するとリセットされます。これを回避するにはどうすればよいですか。リセットするのではなく、結果を保持したいのです。

$(function() {
  $("#fdiv").delay(1000).addClass("go");
});
#fdiv {
  width: 10px;
  height: 10px;
  position: absolute;
  margin-left: -5px;
  margin-top: -5px;
  left: 50%;
  top: 50%;
  background-color: red;
}

.go {
  -webkit-animation: spinAndZoom 1s 1;
}

@-webkit-keyframes spinAndZoom {
  0% {
    width: 10px;
    height: 10px;
    margin-left: -5px;
    margin-top: -5px;
    -webkit-transform: rotateZ(0deg);
  }
  100% {
    width: 400px;
    height: 400px;
    margin-left: -200px;
    margin-top: -200px;
    -webkit-transform: rotateZ(360deg);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div id="fdiv"></div>

これがデモです。

4

3 に答える 3

146

追加animation-fill-mode: forwards;

あなたに.go

アニメーションの最後のキーフレームは、アニメーションの最後の繰り返しが完了した後も引き続き適用されます。

http://css-infos.net/property/-webkit-animation-fill-mode

于 2013-06-25T12:14:07.133 に答える
5

スタイルシートに次のスタイルを追加します。

.go {
     /* Already exists */
     -webkit-animation: spinAndZoom 1s 1;

     /*New content */
     -webkit-animation-fill-mode: forwards;
 }
于 2013-06-25T12:15:05.330 に答える
2

animation-fill-mode: forwards; を追加します。

.go {
     -webkit-animation-fill-mode: forwards;
 }
于 2013-06-25T12:42:46.913 に答える