07.修改div移动练习.html 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. #box1 {
  10. width: 100px;
  11. height: 100px;
  12. background-color: red;
  13. position: absolute;
  14. }
  15. </style>
  16. <script>
  17. //使div可以根据不同的方向键向不同的方向移动
  18. /**
  19. * 按左键,div向左移
  20. * 按右键,div向右移
  21. * 按上键,div向上移
  22. * 按下键,div向下移
  23. */
  24. window.onload = function () {
  25. //定义一个移动速度的变量
  26. var speed = 10;
  27. //创建一个变量表示方向
  28. //通过修改dir来影响移动的方向
  29. var dir = 0;
  30. //开启一个定时器,来控制div移动
  31. setInterval(function () {
  32. /**
  33. * 左:37
  34. * 上:38
  35. * 右:39
  36. * 下:40
  37. */
  38. switch (dir) {
  39. case 37:
  40. // alert('向左');//left值减小
  41. box1.style.left = box1.offsetLeft - speed + 'px';
  42. break;
  43. case 38:
  44. // alert('向上');//top值减小
  45. box1.style.top = box1.offsetTop - speed + 'px';
  46. break;
  47. case 39:
  48. // alert('向右');//left值增加
  49. box1.style.left = box1.offsetLeft + speed + 'px';
  50. break;
  51. case 40:
  52. // alert('向下');//top值增加
  53. box1.style.top = box1.offsetTop + speed + 'px';
  54. break;
  55. };
  56. }, 30)
  57. //为document绑定一个按键按下的事件
  58. document.onkeydown = function (event) {
  59. event = event || window.event;
  60. //当用户按了Ctrl以后,速度加快
  61. if (event.ctrlKey) {
  62. speed = 50;
  63. }else{
  64. speed = 10;
  65. };
  66. //使dir等于按键的值
  67. dir = event.keyCode;
  68. };
  69. //当按键松开时,div不再移动
  70. document.onkeyup = function(){
  71. //设置方向为0
  72. dir = 0;
  73. };
  74. };
  75. </script>
  76. </head>
  77. <body>
  78. <div id="box1"></div>
  79. </body>
  80. </html>