function Drag(id) { this.disX = ''; this.disY = ''; this.oDiv = document.getElementById(id); var _this = this; this.oDiv.onmousedown = function (ev) { _this.fnDown(ev); return false; }; } Drag.prototype.fnDown = function (ev) { var ev = event||ev; var _this = this; // é¼ æ å¯è§åºä½ç½® - divå·¦è¾¹è· = é¼ æ å¨divå çä½ç½® this.disX = ev.clientX - this.oDiv.offsetLeft; this.disY = ev.clientY - this.oDiv.offsetTop; console.log(this.disX,'å¯è§åºé¼ æ Xï¼', ev.clientX, 'é¼ æ Yï¼',ev.clientY); document.onmousemove = function (ev) { _this.mouseMove(ev); } document.onmouseup = function (ev) { _this.mouseUp(ev); } } Drag.prototype.mouseMove = function(ev) { // 䏿è·åEvent 对象ï¼åæ æä¼ä¸ææ´æ° var ev = event||ev; // console.log('å¯è§åºé¼ æ Xï¼', ev.clientX, 'é¼ æ Yï¼',ev.clientY); // divä½ç½® = é¼ æ å¯è§åºæ°çä½ç½® - é¼ æ ä¸divçè·ç¦» this.oDiv.style.left = ev.clientX - this.disX + 'px'; this.oDiv.style.top = ev.clientY - this.disY + 'px'; } Drag.prototype.mouseUp = function () { document.onmousemove = ''; document.onmouseup = ''; }