#img1{ position: absolute; left: 0; top: 0; } </style> <body onkeydown="move(event)"> <!--<p id="p1">鼠标的坐标</p>--> <img src="../img/download_logo.png" id="img1"> </body> <script> var top1 =0; var left =0; function move(e){ // var p1 = document.getElementById("div"); // p1.innerHTML = e.clientX+","+e.clientY; switch (e.keyCode){ case 37:left -=5;break; case 38:top1 -=5;break; case 39:left +=5;break; case 40:top1 +=5;break; } var img1 =document.getElementById("img1"); img1.style.top = top1+"px"; img1.style.left = left+"px"; } </script>
总结:
(1)使用变量top导致上下移动失败,原因是和window.top这个全局变量冲突,解决方法就是换个变量名
(2)如果把变量top1和left移入函数中,发现只能移动5像素,原因是函数内部的局部变量在每次调用的时候都会被初始化,每一次调用都为0,这个时候就只能用全局变量了。