jquery 拖动层问题!

来源:百度知道 编辑:UC知道 时间:2024/05/24 14:17:41
这段代码可以拖动,但是因为拖动式div的速度跟不上鼠标移动的速度,导致脱了一小段距离鼠标就离开div了,请哪位高人指点一下,下面这段代码最大的问题在哪,怎样可以用jquery简单流畅的拖动div(不要插件)

var _x=0,_y=0,_xx=0,_yy=0;

$("#drag").mousedown(function(event){

$(this).css("cursor", "move");

var offset = $(this).parents("#moreDiv").offset();

_x=event.clientX-offset.left;

_y=event.clientY-offset.top;

$(this).mousemove(function(event){

_xx=event.clientX-_x;

_yy=event.clientY-_y;
this.parentNode.parentNode.style.left=event.clientX-_x+"px";
this.parentNode.parentNode.style.top=event.clientY-_y+"px";
return false;

});

return false;

});

$("#drag").mouseup(function(){

$(this).unbind("mousemove");

return false;

})

.mouseout(function(){

function My_Point(x, y) {
this.x = x;
this.y = y;
}

$("#drag").mousedown(function(event){
$(this).css("cursor", "move");

var start_mouse = new My_Point(0, 0); // 鼠标起始位置
var start_obj = new My_Point(0, 0); // 被拖拽手柄的起始位置

start_mouse.x = event.clientX;
start_mouse.y = event.clientY;
start_obj.x = parseInt(obj.style.left);
start_obj.y = parseInt(obj.style.top);

$(this).mousemove(function(event){
this.parentNode.parentNode.style.left = start_obj.x + event.clientX - start_mouse.x + "px";
this.parentNode.parentNode.style.top = start_obj.y + event.clientY - start_mouse.y + "px";
return false;

});

$("#drag").mouseup(function(){

$(this).unbind("mousemove");

return false;

})