obj1,obj3是jQuery对象。obj1是子元素的jQuery对象,obj3是父元素的jQuery对象。
var drag = function (obj1,obj3) {
obj1.bind("mousedown", start);
var x;
var y;
var gapX;
var gapY;
function start(event) {
if (event.button == 0) {//判断是否点击鼠标左键
gapX = event.clientX - obj1.offset().left + obj3.offset().left;//这是计算在减去鼠标相对于子元素的偏移量后,父元素相对于屏幕的横向距离。
gapY = event.clientY - obj1.offset().top + obj3.offset().top;//与gapX同理
//movemove事件必须绑定到$(document)上,鼠标移动是在整个屏幕上的
$(document).bind("mousemove", move);
//此处的$(document)可以改为obj
$(document).bind("mouseup", stop);
}
return false;//阻止默认事件或冒泡
}
function move(event) {
x = event.clientX - gapX;//用鼠标相对于屏幕的横向距离减去父元素相对于屏幕的横向距离
y = event.clientY - gapY;