首页 > 代码库 > 面向对象的拖拽
面向对象的拖拽
今天闲来没事写一个简单的面向对象的拖拽,然后在运用继承方法做一个限制大小的拖拽,好下面先写一个面向对象的拖拽。
divclass{width:100px;height:100px;background:#ccc}
<div id=‘div1‘>me</div>
function Drag(id){ var _this = this; this.oDiv=document.getElementById(id); this.oDiv.onmousedown=function(ev){ _this.fnDown(ev); return false; }};Drag.prototype.fnDown = function(ev){ var _this = this; var oEvent=ev||event; this.disX=oEvent.clientX-this.oDiv.offsetLeft; this.disY=oEvent.clientY-this.oDiv.offsetTop document.onmousemove=function(ev){ _this.fnMove(ev); } document.onmouseup=function(){ _this.fnUp(); }};Drag.prototype.fnMove = function(ev){ var oEvent=ev||event; this.oDiv.style.left=oEvent.clientX-this.disX+"px"; this.oDiv.style.top=oEvent.clientY-this.disY+"px";};Drag.prototype.fnUp = function(){ document.onmousemove=document.onmouseup=null;};
下边是继承 首先新建一个FuDrag()类 新增一个方法
function FuDrag(id){ Drag.call(this,id);//构造函数}for(i in Drag.prototype){ FuDrag.prototype[i] = Drag.prototype[i];//不同于引用,只改变了子集的}FuDrag.prototype.fnMove =function(ev){ var oEvent=ev||event; l=oEvent.clientX-this.disX; t=oEvent.clientY-this.disY; if(l < 0){ l = 0; }else if(l > document.documentElement.clientWidth-this.oDiv.offsetWidth){ l= document.documentElement.clientWidth-this.oDiv.offsetWidth; }; if(t <0){ t = 0; }else if(t > document.documentElement.clientHeight-this.oDiv.offsetHeight){ t= document.documentElement.clientHeight-this.oDiv.offsetHeight }; this.oDiv.style.left=l+"px"; this.oDiv.style.top=t+"px"; }
然后后在测试一下,我们定义两个div 分别创建不同的对象
<div id=‘div1‘ class=‘divclass‘></div><div id=‘div2‘ class=‘divclass‘></div>
window.onload = function(){ new Drag(‘div1‘); new FuDrag(‘div2‘)}
面向对象的拖拽
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。