javascript 類對象的應用,javascript類對象

來源:互聯網
上載者:User

javascript 類對象的應用,javascript類對象

類對象繼承的實現

先建立一個父級對象Drag

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.onmousedown=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.onmousemove=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.onmouseup=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.onmousemove=null;<span style="white-space:pre"></span>document.onmouseup=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';};

運行結果如


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.