JQuery 可拖动偏移误差



我在可拖动方面遇到了问题。开始拖动时,光标的位置是相对于窗口的 [0,0] 测量的,而不是可拖动元素的父<div>

例如,如果父容器偏移了 margin-left:200px ,则当您尝试向右拖动位于容器左边框的元素时,只有在光标位于此左边框右侧 200 像素时,它才会开始移动。

有关实际演示,请参阅(我无法在JSFiddle上复制此演示):演示

我想这需要对可拖动源进行一些修改。这对我来说有点复杂。

有什么想法吗?

您可以使用 $(element).offsetParent() 来获取父项偏移量。当父元素定位为绝对元素时特别方便。您可以编写一个循环来遍历所有父元素并复合它们的偏移量。

仅供参考,您的演示不适用于支持触摸的设备;)

更新我看了一下你的演示,(终于又在电脑上了)。如果您删除div.container 的"位置:相对",则可拖动对象按预期工作(或者至少我认为您希望它们表现得:D)。

我也有这个问题,并且能够通过首先计算边界框到窗口的偏移量来解决它,包括左右。接下来,我更新了包含 x1、y1、x2、y2 位置以反映边界框的位置。

最新更新