JavaScript实现的使用键盘控制人物走动实例


Posted in Javascript onAugust 27, 2014

其实这个示例用到了js的两个核心时间,键盘事件onkeydown,周期执行事件setInterval。

实现效果

当按下键盘某个键时网页中的人物实现相应的动作,达到利用键盘控制走动效果

实现步骤

一、预订键值作用:

w:向上
s:向下
a:向左
d:向右
空格:停止

二、预订键值后,要能捕获按键事件以及判断用户按的是哪个键?

捕获键盘事件可以用onkeydown
获取键值码可以用event.keyCode
 
三、用setInterval周期执行事件替换图片

替换图片是为了实现任务走动效果
但要注意使用clearInterval清除周期执行,否则会越走越快

示例代码:

<html>
	<head>
		<meta charset="utf-8" />
		<title>人物走动</title>
	</head>
	<body onkeydown="show()">
		<ul style="posttion:absolute;border:1px solid #999;list-style:none;width:150px;padding:20px;background:#ffffef;">
			<li>w:向上</li>
			<li>s:向下</li>
			<li>a:向左</li>
			<li>d:向右</li>
			<li>空格:停止</li>
			<li style="margin-top:20px;"><u><a href="https://3water.com">三水点靠木</a></u></li>
		</ul>
		<div style="position:absolute;top:0;left:0" id='di'><img src="//img.jbzj.com/file_images/article/201408/201482791327688.gif?201472791345" id="img"></div>
		<script>
			var img1='//img.jbzj.com/file_images/article/201408/201482791656841.gif?201472791722';
			var img2='//img.jbzj.com/file_images/article/201408/201482791327688.gif?201472791345';
			var x=0;
			var y=0;
			var xs=0;
			var ys=0;
			var flag=true;
			var zq=null;
			function ks(){
				zq=setInterval(function(){	
					var s=document.getElementById('img');	
					var str=s.src;
					var area=document.getElementById('di');
					var xpos=parseInt(area.style.left);
					var ypos=parseInt(area.style.top);
					x=x+xs;
					y=y+ys;
					area.style.left=x;
					area.style.top=y;
					var pos=str.lastIndexOf('/')+1;
					var hz=str.substr(pos);
					if(hz==img1){
						s.src= img2;
					}else{
						s.src= img1;
					}				
				},50);
			}
			ks();

			function show(){
				var sz=window.event.keyCode;
				switch(sz){
					case 87:
						img1='//img.jbzj.com/file_images/article/201408/ren_h_1.gif';
						img2='//img.jbzj.com/file_images/article/201408/ren_h_2.gif';
						ys=-5;
						xs=0;
						break;
					case 65:
						img1='//img.jbzj.com/file_images/article/201408/ren_l_1.gif';
						img2='//img.jbzj.com/file_images/article/201408/ren_l_2.gif';
						xs=-5;
						ys=0;
						break;
					case 68:
						img1='//img.jbzj.com/file_images/article/201408/ren_r_1.gif';
						img2='//img.jbzj.com/file_images/article/201408/ren_r_2.gif';
						xs=5;
						ys=0;
						break;
					case 83:
						img1='//img.jbzj.com/file_images/article/201408/ren_q_1.gif';
						img2='//img.jbzj.com/file_images/article/201408/ren_q_2.gif';
						ys=5;
						xs=0;
						break;
					case 32:
					  if(flag){
						  clearInterval(zq);
						  flag=false;
						  break;
					   }
					case 13:
					 if(!flag){
						 ks();
						 flag=true;
						break;
					  }
				}
			}
		</script>
	</body>
</html>
Javascript 相关文章推荐
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
Apr 18 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
Feb 27 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
基于jQuery实现动态搜索显示功能
May 05 Javascript
jQuery实现查找链接文字替换属性的方法
Jun 27 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
AngularJS HTML DOM详解及示例代码
Aug 17 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 Javascript
Javascript实现单选框效果
Dec 09 Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 #Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
Aug 27 #Javascript
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 #Javascript
javascript实现的一个随机点名功能
Aug 26 #Javascript
JS按回车键实现登录的方法
Aug 25 #Javascript
在JavaScript中重写jQuery对象的方法实例教程
Aug 25 #Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 #Javascript
You might like
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
php发送post请求函数分享
2014/03/06 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
Django之模型层多表操作的实现
2019/01/08 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
职业技术学校毕业生推荐信
2013/12/03 职场文书
党员评议思想汇报
2014/10/08 职场文书
试用期自我评价范文
2015/03/10 职场文书
政府会议通知范文
2015/04/15 职场文书
部门主管竞聘书
2015/09/15 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
JavaScript执行机制详细介绍
2021/12/06 Javascript
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android