键盘控制div移动

键盘控制div移动
创建一个Move类(其实javascript没有类)
function Move(){this.init.apply(this,arguments);}
主要步骤如下:
一、初始化
创建一个div元素
为div设置style属性值
指定默认宽度,高度,距顶,距左,父容器,设置步长
二、键盘上下左右键控制移动
主要是修改div距顶,距左的距离
三、父容器限制
将创建的元素添加到父元素中,并使创建的元素在父元素内移动。
<!DOCTYPE html> <html> <head> <title>键盘控制div移动---www.cnblogs.com/kuikui</title> </head> <body> <script type="text/javascript"> function Move() { this.init.apply(this, arguments); } Move.prototype = { init: function (options) { this.obj = document.createElement("div"); this.obj.style.position = "absolute"; this.obj.style.zIndex = "9999"; this.obj.style.border = "1px solid red"; this.setOptions(options); this.obj.style.width = this.options.oWidth + "px"; this.obj.style.height = this.options.oHeight + "px"; this.obj.style.left = this.options.oLeft + "px"; this.obj.style.top = this.options.oTop + "px"; this.bigCont = this.options.bigCont; this.step = this.options.step; this.bigCont.appendChild(this.obj); var _this = this; document.onkeydown = function (event) { _this.moving(event); } }, setOptions: function (options) { this.options = { bigCont: document.body, oWidth: 50, oHeight: 50, oLeft: 100, oTop: 100, step: 10 }; for (var p in options) { this.options[p] = options[p]; } }, moving: function (event) { event = event || window.event; switch (event.keyCode) { case 37: this.obj.style.left = this.obj.offsetLeft - this.step + "px"; break; case 38: this.obj.style.top = this.obj.offsetTop - this.step + "px"; break; case 39: this.obj.style.left = this.obj.offsetLeft + this.step + "px"; break; case 40: this.obj.style.top = this.obj.offsetTop + this.step + "px"; break; } this.limit(); return false; }, limit: function () { var doc = [document.documentElement.clientWidth, document.documentElement.clientHeight]; this.obj.offsetLeft <= 0 && (this.obj.style.left = 0); this.obj.offsetTop <= 0 && (this.obj.style.top = 0); doc[0] - this.obj.offsetLeft - this.obj.offsetWidth <= 0 && (this.obj.style.left = doc[0] - this.obj.offsetWidth + "px"); doc[1] - this.obj.offsetTop - this.obj.offsetHeight <= 0 && (this.obj.style.top = doc[1] - this.obj.offsetHeight + "px"); } } var t = new Move(); </script> </body> </html>

运行代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值