所以我可以用鼠标移动一个元素,但是问题是偏移量是从元素的左上角计算的,没有考虑到鼠标在元素中的位置,导致对象跳向鼠标并防止你从向上或向左拖动它。
所以我想出了这个功能:
handle.on("mousemove", function(e) {
if (state.dragging) {
var paneOffset = pane.offset();
var mouseOffset = {
'top': e.pageY - paneOffset.top,
'left': e.pageX - paneOffset.left
}
pane.offset({
top: e.pageY - mouseOffset.top,
left: e.pageX - mouseOffset.left
});
}
});
示例:http: //jsfiddle.net/SEKxc/
这样做的问题是它会阻止元素移动,因为它总是计算元素的相同精确偏移量。我如何使元素跟随鼠标但相对于鼠标在对象中的位置。
我知道 jQueryUI 内置了这个功能,但不想使用它。