使用onkeydown javascript移动div
我试图用箭头键(37和39)移动我的div,然后按空格键使div在键向下时显示,在键向上时消失。 但问题是:当我按下空格键时,我希望div继续移动。现在,当我这样做时,div停止移动 我原以为将密钥放入数组中会起作用,但事实并非如此,您有什么建议可以帮助我吗?:) 代码必须是javascript使用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
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);