博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运用KeyCode在浏览器中按WASD使图形运动
阅读量:4663 次
发布时间:2019-06-09

本文共 1411 字,大约阅读时间需要 4 分钟。

如何实现在浏览器中按WASD四个键使图形上下左右运动呢?

其实很简单,用keyCode方法就可以实现了。

先放个div在html中:

1 

在div中设置内联css样式,至于为什么要设置内联式,之后在解释。

css部分:

1 

因为在div中设置了left和top属性,所以必须设置绝对定位

那么接下来就是js部分了:

1 var key={2         W:87,S:83,A:65,D:68 3     }

声明一个变量key,存放WASD四个按键的Unicode码。

1 function keymove(e){ 2             var ball=document.getElementById('ball'); 3             var left=parseInt(ball.style.left); 4             var top=parseInt(ball.style.top); 5             switch(e.keyCode){ 6                 case key.W: 7                     ball.style.top=top-2+'px'; 8                 break; 9                 case key.S:10                     ball.style.top=top+2+'px';11                 break;    12                 case key.A:13                     ball.style.left=left-2+'px';14                 break;    15                 case key.D:16                     ball.style.left=left+2+'px';17                 break;    18             }19         }20         document.οnkeydοwn=keymove;

写一个函数keymove参数为e(随意什么英文都可以),因为元素的属性值是字符串,所以需要用parseInt方法将其转换成int数据类型,接下来要用一系列的判断语句,if或者switch语句都可以,这里我用switch是因为更方便些。

参数名.keyCode的返回值是用户摁下键盘按键对应的Unicode码值。

最后调用函数,当触发onkeydown事件时执行函数,keyCode还可以用于onkeypress和onkeyup事件中。

最后回答为什么left和top属性用内联式而不用嵌入式方法,这里设置及到一些知识点:

在js中 element指的是js获取的dom对象,

而element.style则代表js获取的内联式样式,如果对象没有内联式,则为空对象。

当然有别的获取对象样式的方法可以获取非内联式的样式,但是如果用element.style的方法获取样式,非内联式方法定义的样式是获取不到的哦。

 

转载于:https://www.cnblogs.com/FrankLongger/p/8995202.html

你可能感兴趣的文章
CentOS7使用firewalld打开关闭防火墙与端口
查看>>
线程池ThreadPool的初探
查看>>
flutter setInitialRoute: 不生效
查看>>
【bzoj3567】江南乐
查看>>
[每日电路图] 6、看一个步进电机驱动电路【转】
查看>>
5分钟让你掌握css3阴影、倒影、渐变小技巧!
查看>>
perl中的grep函数介绍
查看>>
OBS源码编译开发
查看>>
[jQuery]使用jQuery.Validate进行客户端验证(初级篇)——不使用微软验证控件的理由...
查看>>
试玩汇编语言 3:基础知识
查看>>
[导入]林志颖——为什么受伤的总是我 320k/mp3 (亲传)
查看>>
php 引入文件 include 和require
查看>>
NotePad++ 列模式
查看>>
hdu 4454, 离散化,枚举
查看>>
Lua 5.2 Reference Manual
查看>>
Jenkins遇到问题一:jenkins配置权限不对导致无法登陆或者空白页面解决办法
查看>>
机器学习(十一)-------- 推荐系统(Recommender Systems)
查看>>
局部a链接样式
查看>>
Django-配置静态文件
查看>>
Spark内存管理详解
查看>>