js实现键盘控制移动div
2017-05-08 16:31
621 查看
简单原理:
获取键盘keyCode,按一定规则改变指定div的边距实现控制指定div的移动。需注意的是要考虑div的溢出问题,要编写函数限制移动范围。实现效果:
用户通过键盘的指定键指定div在web页面内移动。代码块
html代码<body> <div id="d1"> <pre>您可以使用键盘进行如下操作: 上:↑ 下:↓ 左:← 右:→ </pre> </div> <div id="d2">我可以移动</div> </body>
javascriptt代码
window.onload=function(){ var div=document.getElementById('d2'); var keyT=keyB=keyL=keyR=false;//设置指定键初始值 setInterval(function(){//设置定时器,键盘按下每隔10毫秒执行一次移动操作 if(keyL){ div.style.left=div.offsetLeft-10+"px"; } else if(keyR){ div.style.left=div.offsetLeft+10+"px"; } if(keyT){ div.style.top=div.offsetTop-10+"px"; } else if(keyB){ div.style.top=div.offsetTop+10+"px"; }; limit()//limit()函数限制div移动防止溢出 },10); document.onkeydown=function(event){//keydown事件,keyCode绑定移动键位 var event=event||window.event; switch(event.keyCode){ case 37: keyL=true;//if语句执行,div左移动 return; case 38: keyT=true; return; case 39: keyR=true; return; case 40: keyB=true; return; } } document.onkeyup=function(event){//keyup事件,用户松开按键时移动停止 var event=event||window.event; switch(event.keyCode){ case 37: keyL=false; break; case 38: keyT=false; break; case 39: keyR=false; break; case 40: keyB=false; break; } } };
limit()函数
function limit(){ (div.offsetLeft<=0)&&(div.style.left=0); //防止左溢出 (div.offsetTop<=0)&&(div.style.top=0); //防止上溢出 (div.offsetLeft+div.offsetWidth>=document.documentElement.clientWidth)&&(div.style.left=document.documentElement.clientWidth-div.offsetWidth+"px"); //防止右溢出 (div.offsetTop+div.offsetHeight>=document.documentElement.clientHeight)&&(div.style.top=document.documentElement.clientHeight-div.offsetHeight+"px"); //防止下溢出 }
相关文章推荐
- 原生js实现键盘控制div移动且解决停顿问题
- js实现键盘控制DIV移动的方法
- js实现键盘控制DIV移动的方法
- JS实现用键盘控制div的移动操作与背景变色
- js键盘控制div移动,解决停顿问题
- 用JS实现键盘左右键控制图片移动
- JS实现用键盘控制DIV上下左右+放大缩小与变色
- js实现键盘操作对div的移动或改变-------Day43
- js键盘控制div移动,解决停顿问题
- JS实现用键盘控制DIV
- js实现键盘操作实现div的移动或改变的原理及代码
- js键盘控制DIV移动
- js实现用键盘控制DIV上下左右+放大缩小与变色
- js实现键盘操作对div的移动或改变-------Day43
- JS之键盘控制div移动
- js实现键盘操作实现div的移动或改变的原理及代码
- js实现键盘操作实现div的移动或改变的原理及代码
- js实现按键球,小球随键盘上下左右控制移动
- JS实现用键盘控制DIV上下左右+放大缩小与变色
- js实现键盘的上下左右控制图片移动