使用onkeydown javascript移动div

使用onkeydown javascript移动div,javascript,events,onkeydown,Javascript,Events,Onkeydown,我试图用箭头键(37和39)移动我的div,然后按空格键使div在键向下时显示,在键向上时消失。 但问题是:当我按下空格键时,我希望div继续移动。现在,当我这样做时,div停止移动 我原以为将密钥放入数组中会起作用,但事实并非如此,您有什么建议可以帮助我吗?:) 代码必须是javascript var keysPressed = new Array(); window.onkeydown = keyDownHandler; window.onkeyup = keyUpHandler; fun

我试图用箭头键(37和39)移动我的div,然后按空格键使div在键向下时显示,在键向上时消失。 但问题是:当我按下空格键时,我希望div继续移动。现在,当我这样做时,div停止移动

我原以为将密钥放入数组中会起作用,但事实并非如此,您有什么建议可以帮助我吗?:)

代码必须是javascript

var keysPressed = new Array();
window.onkeydown = keyDownHandler;
window.onkeyup = keyUpHandler;

function keyDownHandler(e){
    var s="";
    keysPressed[e.which] = true;
    Key = window.event.keyCode;
    s+=Key+" activee:" + keysPressed[e.which];
    updateKeys();
    document.getElementById("moveDiv").innerHTML  = s;
}

function keyUpHandler(e){
     s="";
     keysPressed[e.which] = false;
     Key = window.event.keyCode;
     s+=Key+" activee:" + keysPressed[e.which];
     updateKeys();
     document.getElementById("moveDiv").innerHTML  = s;
}
    var left=0;
    var top = 0;
function updateKeys(){
    if(keysPressed[39]){
        document.getElementById("moveDiv").style.left = left + 10+"px";
        left += 10;
    }
    if(keysPressed[37]){
        document.getElementById("moveDiv").style.left = left -10+"px";
        left-=10;
    }
    if(keysPressed[32]){
        document.getElementById("show").style.display = "block";
    }
    if(!keysPressed[32]){
        document.getElementById("show").style.display = "none";
    }

}
HTML:


按空格键

这就是你想要实现的目标吗


它基本上设置了一个函数,每一毫秒运行一次,在这种情况下,每1毫秒执行一次函数
updateKeys

Awesome!它工作得很好!谢谢你的setInterval链接,我会检查一下。祝您今天过得愉快!
<div style="position:absolute;" id="moveDiv"></div>
<div style="position:absolute; 
                left:500px; 
                top:500px; 
                display: none;" id="show">Pressed spacebar</div>
function updateKeys() {
    if (keysPressed[0])
        left -= speed;
    if (keysPressed[2])
        left += speed;
    if (keysPressed[1])
        top -= speed;
    if (keysPressed[3])
        top += speed;

    document.getElementById("moveDiv").style.left = left + "px";
    document.getElementById("moveDiv").style.top = top + "px";
    if (spacePressed)
        document.getElementById("show").style.display = "block";
    else
        document.getElementById("show").style.display = "none";
}

setInterval(updateKeys, 1);