<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<style type="text/css">
#div1{
width: 40px;
height: 40px;
background: red;
position: absolute;
}
</style>
<script type="text/javascript">
window.onload = function(){
var oDiv = document.getElementById("div1");
document.onkeydown = function(ev){
var ev = ev || event;
var timer=setInterval(function tim(){
switch(ev.keyCode){
case 37:
oDiv.style.left = oDiv.offsetLeft - 10 +"px";
break;
case 38:
oDiv.style.top = oDiv.offsetTop - 10 +"px";
break;
case 39:
oDiv.style.left = oDiv.offsetLeft + 10 +"px";
break;
case 40:
oDiv.style.top = oDiv.offsetTop + 10 +"px";
break;
}
},20);
document.onkeyup = function(){
clearInterval(timer);
}
}
}
</script>
<body>
<div id="div1"></div>
</body>
</html>一下一下的按是没有问题的,是预想的结果,但是按下一段时间再松手就取消不了了。
14 回答
一只废喵
TA贡献8条经验 获得超4个赞
我就是想要取消keydown连续按下时候的延时问题,然后按下一段时间再松开也可以立刻停止 这个效果,现在短期内连续按是可以的,没有延时问题了,但是连着按的时间长的话就刹不住车了。然后同时按上下左右任意两个方位键也会刹不住车。
添加回答
举报
0/150
提交
取消