javascript 类对象的应用

类对象继承的实现

先创建一个父级对象Drag

/**
 * @author zhaoshaobang
 */
function Drag(id){
<span style="white-space:pre">	</span>var _this=this;
<span style="white-space:pre">	</span>this.oDiv=document.getElementById(id);
<span style="white-space:pre">	</span>this.disX=0;
<span style="white-space:pre">	</span>this.disY=0;
<span style="white-space:pre">	</span>this.oDiv.οnmοusedοwn=function(evt)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>_this.downFn(evt);
<span style="white-space:pre">	</span>};
};
Drag.prototype.downFn=function(evt){
<span style="white-space:pre">	</span>var e=evt||event;
<span style="white-space:pre">	</span>var _this=this;
<span style="white-space:pre">	</span>this.disX=e.clientX-this.oDiv.offsetLeft;
<span style="white-space:pre">	</span>this.disY=e.clientY-this.oDiv.offsetTop;
<span style="white-space:pre">	</span>document.οnmοusemοve=function(evt){
<span style="white-space:pre">		</span>_this.moveFn(evt);
<span style="white-space:pre">	</span>};
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>document.οnmοuseup=function(evt){
<span style="white-space:pre">		</span>_this.upFn(evt);
<span style="white-space:pre">	</span>};
};
Drag.prototype.moveFn=function(evt){
<span style="white-space:pre">	</span>var e=evt||event;
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>this.oDiv.style.left=e.clientX-this.disX+'px';
<span style="white-space:pre">	</span>this.oDiv.style.top=e.clientY-this.disY+'px';
<span style="white-space:pre">		</span>
};
Drag.prototype.upFn=function(){
<span style="white-space:pre">	</span>document.οnmοusemοve=null;
<span style="white-space:pre">	</span>document.οnmοuseup=null;
};

在创建一个子集对象,并设置拖拽范围

/**
 * @author zhaoshaobang
 */

//继承属性

function LimitDrag(id)
{
	Drag.call(this,id);//Drag中的this会变为LimitDrag
}
//  继承父级方法
for(var i in Drag.prototype)
{
	LimitDrag.prototype[i]=Drag.prototype[i];
}

LimitDrag.prototype.moveFn=function(evt){
	var e=evt||event;
	var i=e.clientX-this.disX;
	
	if(i<0)
	{
		i=0;
	}
	else if(i>document.documentElement.clientWidth-this.oDiv.offsetWidth)
	{
		i=document.documentElement.clientWidth-this.oDiv.offsetWidth;
	}
	this.oDiv.style.left=i+'px';
	this.oDiv.style.top=e.clientY-this.disY+'px';
};

运行结果如下图


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值