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 相关文章推荐
判断一个变量是数组Array类型的方法
Sep 16 Javascript
js中文逗号转英文实现
Feb 11 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
May 14 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
Aug 21 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
Dec 12 Javascript
bootstrap栅格系统示例代码分享
May 22 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
Jan 26 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 01 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
Oct 22 Javascript
jquery实现拖拽小方块效果
Dec 10 jQuery
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
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
分享php多功能图片处理类
2016/05/15 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
JavaScript 题型问答有答案参考
2010/02/17 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
详解Python3中的Sequence type的使用
2015/08/01 Python
python字符类型的一些方法小结
2016/05/16 Python
Python 编程速成(推荐)
2019/04/15 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
大课间体育活动方案
2014/03/12 职场文书
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL