我正在练习当用户按下箭头键时在对象周围移动。我有它,所以当他们按右时,它会向右移动一个对象,当他们向上按时,它会向上移动。但是,我的函数一次只能记录其中的 1 次按键,因此它们无法对角线移动:
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});
}
};
有没有办法同时响应两个按键?
您必须同时检测键关闭和键控
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];
};