我写了一个用箭头键移动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的移动变得不那么顺畅。