0

アニメーションに問題があります。以下の場合は、

上矢印を押すと、要素が飛び上がってから下に落ちます。しかし、上矢印を押したままにすると、アニメーションが開始されてから減速して停止します。離したら終わり。上矢印を押しているかどうかに関係なく、アニメーション(ジャンプしてからダウン)を変更せずに1回再生したい。キーダウンで一度発砲するだけで、それ以上は何もありません。

$('body').keydown(function(e){
    e.stopPropagation();
    if (e.keyCode == '38') { keyU = true; }
});

$('body').keyup(function(e){
    e.stopPropagation();
    if (e.keyCode == '38') { keyU = false; }
});

var tick = function() {
    if (keyU) {
        jump();
    }
}

setInterval( function() {
    rotate();
    tick();
  }, 100 );

var jump = function(){
    $("#Character").stop(true).animate({ top: "50px" },{ duration: 1000, easing: "easeOutQuad" }).animate({ top: "200px" },{ duration: 1000, easing: "easeInQuad" });
}

それは可能ですか?

4

1 に答える 1

2

これにより、アニメーションが既に実行されているかどうかがチェックされます。実行されている場合は、もう一度実行をスキップできます。

$('body').keydown(function(e){
    e.stopPropagation();
    if (e.keyCode == '38') { 
          if ($('#Character').is(':animated')) {
           //code for animation already running
              }
          else{  keyU = true; }
     }
});
于 2013-01-25T18:46:04.527 に答える