div键盘按键移动定时器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style type="text/css"> #box1 { width: 100px; height: 100px; background-image: linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%); position: absolute; } </style> <script type="text/javascript"> // 使div可以根据不同的方向键向不同的方向移动 /* 按左键,div向左移 按右键,div向右移 */ window.onload = function () { // 定义一个变量,来表示移动的速度 var speed = 10; // 创建一个变量表示方向 // 通过修改dir来影响移动的速度 var dir=0; // 开启一个定时器,来控制div的移动 setInterval(function(){ /* 37 左 39 右 38 上 40 下 */ switch (dir) { case 37: // alert("向左"); left值减小 box1.style.left = box1.offsetLeft - speed + "px"; break; case 39: // alert("向右"); box1.style.left = box1.offsetLeft + speed + "px"; break; case 38: // alert("向上"); box1.style.top = box1.offsetTop - speed + "px"; break; case 40: // alert("向下"); box1.style.top = box1.offsetTop + speed + "px"; break; } }, 30); // 为document绑定一个按键松下的事件 document.onkeydown = function (event) { event = event || window.event; // 当用户按了ctrl以后,速度加快 if (event.ctrlKey) { speed = 500; }else{ speed = 10; } // 使dir等于按键的值 dir=event.keyCode; }; // 当按键松开时,div不再移动 document.onkeyup=function(){ // 设置方向为0 dir=0; }; }; </script> </head> <body> <div id="box1"></div> </body> </html>
按键左上右下方向键移动,松开方向键停止移动