js如何实现上下左右键盘控制div移动

  介绍

这篇文章主要介绍了js如何实现上下左右键盘控制div移动,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>描述:

div通过键盘事件上下左右实现div块的移动

<>强效果:,

 js如何实现上下左右键盘控制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移动