使用不同的keydown事件jQuery打破div运动的keydown事件

时间:2015-04-19 16:27:46

标签: jquery html javascript-events keydown

我写了一个用箭头键移动div的脚本。这是我想要的唯一例外,如果在紧接着keyup事件之前有keydown,它只会切换到新的方向。

换句话说,用户无法更改方向,因为没有简单地释放所有键。

这是我的“向下”和“向右”运动的代码。

$(document).keydown(function(e){
var code = e.keyCode || e.which;
count++;
if(count < 2){
    switch(code){
    case 39:
        right();
        break
    case 40:
        down();     
        break
    }
}
}).keyup(   function(e) {
    var code = e.keyCode || e.which;
    count = 0
    if(code == 37 || code == 38 || code == 39 || code == 40){
        cancelAnimationFrame(animationframeID);
    }
})


//movement functions
function down(){
  animationframeID = requestAnimationFrame(down);
  $("#player").css({
    top: "+=5"
  })
}
 function right(){
  animationframeID = requestAnimationFrame(right);
  $("#player").css({
    left: "+=5"
  })
}

如果用户仍在按right,如何更改此脚本以允许方向更改为down?我尝试将keyup更改为keydown,但这会使div的移动变得不那么顺畅。

0 个答案:

没有答案