2013-10-22 87 views
0

我遇到可拖动的问题。当您开始拖动时,游标的位置相对于窗口的[0,0]而不是可拖动元素的父代<div>进行测量。JQuery可拖动偏移量错误

例如,如果父容器偏移了margin-left:200px,当您尝试拖拽一个坐在容器左边框上的元素时,它将只在光标为200像素时才会开始移动到这个左边框的右边。

对于实际演示,请参阅(我不能上的jsfiddle复制此):Demo

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

任何想法?

回答

1

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

,仅供参考在启用触摸的设备上的演示不工作;)

更新 我又看了一下您的演示,(终于在PC上)。如果你删除了div.container的'position:relative',那么可拖动的按照预期工作(或者至少我认为你期望它们表现为:D)。

+0

我不完全确定如何在可拖动的上下文中实现这一点。 – FuriousD

+0

@FuriousD,我更新了我的答案,你能确认它是否有帮助吗? –

+0

感谢您的帮助。我已经对draggable.js进行了一些修改,从一开始实际上导致了这个问题。 – FuriousD

0

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