同时响应 2 次按键



我正在练习当用户按下箭头键时在对象周围移动。我有它,所以当他们按右时,它会向右移动一个对象,当他们向上按时,它会向上移动。但是,我的函数一次只能记录其中的 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];
};

相关内容

  • 没有找到相关文章

最新更新