function mouseX(event) {
if(!event){
return window.event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft);
}else{
return event.pageX;
}
}
function mouseY(event) {
if(!event){
return window.event.clientY + (document.documentElement.scrollTop || document.body.scrollTop);
}else{
return event.pageY;
}
}
function Drag(){}
Drag.prototype.baseX = 0;
Drag.prototype.baseY = 0;
Drag.prototype.lastX = 0;
Drag.prototype.lastY = 0;
Drag.prototype.nowX = 0;
Drag.prototype.nowY = 0;
Drag.prototype.obD = null;
Drag.prototype.obM = null;
Drag.prototype.build = function(_obD,_obM){
if(_obM){
Drag.prototype.obM = _obM;
}else{
Drag.prototype.obM = _obD;
}
Drag.prototype.obD = _obD;
Drag.prototype.obM.onmousedown = function(event) {
Drag.prototype.lastX = mouseX(event);
Drag.prototype.lastY = mouseY(event);
Drag.prototype.baseX = Drag.prototype.obD.style.left;
Drag.prototype.baseY = Drag.prototype.obD.style.top;
this.onmousemove = function(event){
Drag.prototype.nowX = mouseX(event);
Drag.prototype.nowY = mouseY(event);
Drag.prototype.obD.style.left = (parseFloat(Drag.prototype.baseX) + Drag.prototype.nowX - Drag.prototype.lastX) + "px";
Drag.prototype.obD.style.top = (parseFloat(Drag.prototype.baseY) + Drag.prototype.nowY - Drag.prototype.lastY) + "px";
}
}
Drag.prototype.obM.onmouseup = function(event){
//obD.onmouseup = null;
Drag.prototype.obD.onmousemove = null;
}
Drag.prototype.obM.onmouseout = function(){
//obM.onmouseup = null
Drag.prototype.obM.onmousemove = null;
}
}
//使用方法
var drag = new Drag();
drag.build(getElementById("div"));//拖动本身
或
drag.build(getElementById("div"),getElementById("div"));//通过一个对象拖动另一个对象