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 相关文章推荐
Javascript !!的作用
Dec 04 Javascript
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 Javascript
jquery 无限级下拉菜单的简单实现代码
Feb 21 Javascript
jQuery Migrate 1.1.0 Released 注意事项
Jun 14 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
Sep 22 Javascript
win7下安装配置node.js+express开发环境
Dec 06 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
May 24 Javascript
jQuery操作动态生成的内容的方法
May 28 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
Nov 29 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
JavaScript获取ul中li个数的方法
Feb 13 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
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
js中apply与call简单用法详解
2017/11/06 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
Python的迭代器和生成器
2015/07/29 Python
Python的pycurl包用法简介
2015/11/13 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
python表格存取的方法
2018/03/07 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
python 回溯法模板详解
2020/02/26 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
pip install命令安装扩展库整理
2021/03/02 Python
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
2016年五一国际劳动节活动总结
2016/04/06 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL