js 用键盘移动一个Div,切换键再按住会有一个延迟,怎么把延迟去掉?

JavaScript022

js 用键盘移动一个Div,切换键再按住会有一个延迟,怎么把延迟去掉?,第1张

延时是因为系统重复按键的设置,这个是没法避免的,所以你的程序不能这样写,你按下某个键肯定是希望它一直去做这件事,那你只需要在按下键的时候启动一个定时器,去移动拟的div,等键盘抬起的时候清除这个定时器就可以了

只走一步是因为移动一次后没有对x进行处理,所以点第二次的时候 x的值不变,x-10也不变,所以就不动了 <html><head><title>demo</title><style type="text/css">.active { border: 1px solid red} </style><script type="text/javascript" src="Scripts/jquery-1.6.2.min.js"></script><script type="text/javascript">var x = 0//水平方向位移 var y = 0//垂直方向位移 $(document).keydown(function (event) { switch (event.which) { case 37: y = y - 10$("#person").css("left", y + "px")breakcase 38: x = x - 10$("#person").css("top", x + "px")breakcase 39: y = y + 10$("#person").css("left", y + "px")breakcase 40: x = x + 10$("#person").css("top", x + "px")breakdefault: break} })</script></head><body><div id="person" class="active" style="position: absolutewidth: 50pxheight: 50px" /></body></html>