想要使用js实现操作上下左右键盘控制页面中元素移动,需要解决的问题有,
- 如何获取按键触发信息
- 如何使用已触发的按键信息移动元素
元素和样式
<style>
#car{
width: 64px;
height: 51px;
background-image: url('选上我最爱的小汽车!');
background-size: cover;
position: absolute;
left: 500px;
top: 300px;
}
</style>
<body>
<div id="car" ></div>
</body>
使用绝对定位将小汽车的位置布局在页面中间差不多的地方
js代码
<script>
window.onload = function(){
var car = document.getElementById('car');
document.onkeydown = function(event){
console.log(event.keyCode);
switch(event.keyCode){
case 37:car.style.left = car.offsetLeft-10+'px';break;
case 38:car.style.top = car.offsetTop-10+'px';break;
case 39:car.style.left = car.offsetLeft+10+'px';break;
case 40:car.style.top = car.offsetTop+10+'px';break;
}
}
}
</script>
获取按键按下事件
document.onkeydown = function(event){
console.log(event.keyCode);
}
获取到上下左右分别为38,40,37,39
修改属性时,由于dom.style只能获取行内样式,所以对于
console.log(car.style.left);
这样的式子得到的为空字符串empty string
若是写在行内样式则获得"500px"字符串
而使用dom.offset获得的为数值,直接修改后加上字符串"px"再赋值给dom.style即可