介绍
这篇文章主要介绍了js如何实现上下左右键盘控制div移动,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
<强>描述:强>
div通过键盘事件上下左右实现div块的移动
<>强效果:,强>
<强>实现:强>
js:
var 方法=(function (), { return {才能 ,,,EVENT_ID:“event_id" ,,,loadImage: function (arr), { ,,,,,var img=new 图像(); ,,,,,img.arr=arr; ,,,,,img.list=[]; ,,,,,img.num=0;//,,,,,,如果DOM对象下的事件侦听没有被删除掉,将会常驻堆中//,,,,,,一旦触发了这个事件需要的条件,就会继续执行事件函数 ,,,,,img.addEventListener (“load" this.loadHandler); ,,,,,img.self=; ,,,,,img.src=https://www.yisu.com/zixun/arr [img.num]; }, loadHandler:函数(e) { this.list.push (this.cloneNode (false)); this.num + +; 如果(this.num> this.arr.length-1) { this.removeEventListener(“负载”,this.self.loadHandler); var evt=新事件(Method.EVENT_ID); evt.list=this.list; document.dispatchEvent (evt); 返回; } this.src=this.arr [this.num]; }, $ c:函数(类型、父母、风格){ var elem=document.createElement(类型); 如果(父)parent.appendChild (elem); (var关键的风格){ elem.style(例子)=风格(例子); } 返回elem; }, divColor:函数(){ var坳=" # ",//这个字符串第一位为#颜色的格式 (var=0;我<6;我+ +){ 坳+=方法(math . random () * 16) .toString (16);//rondom * 16后的随机值即为0 - 1 * 16==约;toString(16)为转化为16进制 } 返回坳;//最后返回一个七位的值格式即为# nnnnnn颜色的格式 }, 随机:函数(最小,最大){ max=Math.max(最小,最大); min=Math.min(最小,最大); 返回Math.floor (math . random() *(极大极小)+分钟); }, dragElem:函数(elem) { elem.addEventListener (“mousedown”, this.mouseDragHandler); elem.self=; }, removeDrag:函数(elem) { elem.removeEventListener (“mousedown”, this.mouseDragHandler); }, mouseDragHandler:函数(e) { 如果(e.type===癿ousedown”) { e.stopPropagation (); e.preventDefault (); document.point={x: e.offsetX y: e.offsetY}; document.elem=; this.addEventListener (“mouseup”, this.self.mouseDragHandler); document.addEventListener (“mousemove”, this.self.mouseDragHandler); }else if (e.type===癿ousemove”) { this.elem.style.left=e.x-this.point.x +“px”; this.elem.style.top=e.y-this.point.y +“px”; }else if (e.type===癿ouseup”) { this.removeEventListener (“mouseup”, this.self.mouseDragHandler); document.removeEventListener (“mousemove”, this.self.mouseDragHandler); } } } })();html:
& lt; ! DOCTYPE html> & lt; html  lang=癳n"祝辞 & lt; head> & lt;才能meta charset=癠TF-8"比; & lt;才能title> Title</title> & lt;才能script src=https://www.yisu.com/zixun/" js/Method.js "> 脚本> 头 <身体> <>脚本 var div; var代码=[]; var速度=2; var bool=false; init (); init()函数{ div=方法。$ c (document.body " div ", { 宽度:“50 px”, 高度:“50 px”, 写成backgroundColor:“红”, 位置:“绝对”, 左:0, 上图:0 }); window.addEventListener (“keydown”, keyHandler); window.addEventListener(“弹起”,keyHandler); setInterval(动画、16); } 函数keyHandler (e) { 如果(e。类型===" keydown " & & (!bool | | code.indexOf (e.keyCode)===1)) { bool=true; code.push (e.keyCode); }else if (e.type===暗稹?{ bool=false; code.length=0; } } 函数动画(){ 如果(! bool)返回; 我(var=0;js如何实现上下左右键盘控制div移动