0

我的动画有问题。如果你在下面看到;

当我按下向上箭头时,一个元素会跳起来,然后会掉下来。但是如果我按住向上箭头,动画就会开始,然后减速到停止。如果我放手,它就结束了。无论我是否按住向上箭头,我都希望动画(向上跳,然后向下)播放一次而不改变。只需在 keydown 上触发一次,仅此而已。

$('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 回答