当用户按下箭头键时,我正在练习移动物体。我得到了它,所以当他们按下它时,它会向右移动一个物体,当它们向上按压时,它会向上移动。但是,我的功能只能同时记录其中一个按键,所以它们不能对角移动:
document.onkeydown = function(e){
if (e.which == 39){ // Move Right
var position = $("#ball1").position();
$("#ball1").offset({left:position.left+2});
}
if (e.which == 38){ // Move Up
var position = $("#ball1").position();
$("#ball1").offset({top:position.top-2});
}
};
有没有办法同时响应两个按键?
答案 0 :(得分:0)
你必须同时检测keydown和keyup
var key = {};
document.onkeydown = function(e){
if (e.which == 39 || e.which == 38){ // Move Right
key[e.which] = true;
if (key[39]) {
var position = $("#ball1").position();
$("#ball1").offset({left:position.left+2});
}
if (key[38]) {
var position = $("#ball1").position();
$("#ball1").offset({top:position.top-2});
}
}
};
document.onkeyup = function(e){
if (key[e.which])
delete key[e.which];
};