js实现键盘控制DIV移动的方法
本文实例讲述了js实现键盘控制DIV移动的方法。分享给大家供大家参考。具体分析如下:
css样式部分:
html,body{overflow:hidden;}
body{margin:0;padding:0;}
pre{color:green;padding:10px15px;background:#f0f0f0;border:1pxdotted#333;font:12px/1.5CourierNew;margin:12px;}
span{color:#999;}
#box{position:absolute;top:50px;left:300px;width:100px;height:100px;background:red;}
</style>
js部分:
window.onload=function()
{
varoBox=document.getElementById("box");
varbLeft=bTop=bRight=bBottom=bCtrlKey=false;
setInterval(function()
{
if(bLeft)
{
oBox.style.left=oBox.offsetLeft-10+"px"
}
elseif(bRight)
{
oBox.style.left=oBox.offsetLeft+10+"px"
}
if(bTop)
{
oBox.style.top=oBox.offsetTop-10+"px"
}
elseif(bBottom)
{
oBox.style.top=oBox.offsetTop+10+"px"
}
//防止溢出
limit();
},30);
document.onkeydown=function(event)
{
varevent=event||window.event;
bCtrlKey=event.ctrlKey;
switch(event.keyCode)
{
case37:
bLeft=true;
break;
case38:
if(bCtrlKey)
{
varoldWidth=oBox.offsetWidth;
varoldHeight=oBox.offsetHeight;
oBox.style.width=oBox.offsetWidth*1.5+"px";
oBox.style.height=oBox.offsetHeight*1.5+"px";
oBox.style.left=oBox.offsetLeft-(oBox.offsetWidth-oldWidth)/2+"px";
oBox.style.top=oBox.offsetTop-(oBox.offsetHeight-oldHeight)/2+"px";
break;
}
bTop=true;
break;
case39:
bRight=true;
break;
case40:
if(bCtrlKey)
{
varoldWidth=oBox.offsetWidth;
varoldHeight=oBox.offsetHeight;
oBox.style.width=oBox.offsetWidth*0.75+"px";
oBox.style.height=oBox.offsetHeight*0.75+"px";
oBox.style.left=oBox.offsetLeft-(oBox.offsetWidth-oldWidth)/2+"px";
oBox.style.top=oBox.offsetTop-(oBox.offsetHeight-oldHeight)/2+"px";
break;
}
bBottom=true;
break;
case49:
bCtrlKey&&(oBox.style.background="green");
break;
case50:
bCtrlKey&&(oBox.style.background="yellow");
break;
case51:
bCtrlKey&&(oBox.style.background="blue");
break;
}
returnfalse
};
document.onkeyup=function(event)
{
switch((event||window.event).keyCode)
{
case37:
bLeft=false;
break;
case38:
bTop=false;
break;
case39:
bRight=false;
break;
case40:
bBottom=false;
break;
}
};
//防止溢出
functionlimit()
{
vardoc=[document.documentElement.clientWidth,document.documentElement.clientHeight]
//防止左侧溢出
oBox.offsetLeft<=0&&(oBox.style.left=0);
//防止顶部溢出
oBox.offsetTop<=0&&(oBox.style.top=0);
//防止右侧溢出
doc[0]-oBox.offsetLeft-oBox.offsetWidth<=0&&(oBox.style.left=doc[0]-oBox.offsetWidth+"px");
//防止底部溢出
doc[1]-oBox.offsetTop-oBox.offsetHeight<=0&&(oBox.style.top=doc[1]-oBox.offsetHeight+"px")
}
};
</script>
说明:
上:↑下:↓左:←右:→
Ctrl+1:背景变为绿色
Ctrl+2:背景变为黄色
Ctrl+3:背景变为蓝色
Ctrl+↑:放大
Ctrl+↓:缩小
html部分:
<divid="box"></div>
希望本文所述对大家的javascript程序设计有所帮助。
相关文章
- JS如何把Object对象的数据输出到控制台中
- JS 事件循环 Node 篇
- JS面试题-js新增基本数据类型BigInt
- JS对象转数组_js怎么把数组转成对象
- JS获取当前时间(年月日时分秒)「建议收藏」
- reduce实现数组求和_js数组reduce
- Linux上的JS压缩工具(js压缩工具linux)
- 利用 JS 实现 Redis 的连接(js连接redis)
- 使用JS控制Oracle数据库的更新(js控制oracle更新)
- JS在Oracle中的应用(js如何oracle)
- 从前端JS里请求Redis资源,搭建高性能应用(前端js请求redis)
- 比较平滑的js控制textaera的高度
- JS控制对象移动效果
- js控制.net验证控件是否可用。
- JS/jQuery实现默认显示部分文字点击按钮显示全部内容
- JS控制文本框textarea输入字数限制的方法
- 使用js正则控制input标签只允许输入的值
- 用js控制组织结构图可以任意拖拽到指定位置
- js中通过父级进行查找定位元素
- js中document.write的那点事
- asp.net中button控制先执行js再执行后台程序的方法