Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery可拖动偏移量错误_Javascript_Jquery_Css_Jquery Ui_Draggable - Fatal编程技术网

Javascript JQuery可拖动偏移量错误

Javascript JQuery可拖动偏移量错误,javascript,jquery,css,jquery-ui,draggable,Javascript,Jquery,Css,Jquery Ui,Draggable,我对draggable有意见。开始拖动时,光标的位置是相对于窗口的[0,0]测量的,而不是可拖动元素的父元素 例如,如果父容器偏移了一个边距left:200px,则当您尝试向右拖动紧靠容器左边框的元素时,仅当光标位于该左边框右侧200像素时,它才会开始移动 对于实际的演示,请参见(我无法在JSFIDLE上复制): 我想这需要对可拖动的源代码进行一些修改。这对我来说有点复杂 有什么想法吗?您可以使用$(element).offsetParent()获得父项偏移量。当父元素处于绝对位置时尤其方便。

我对draggable有意见。开始拖动时,光标的位置是相对于窗口的[0,0]测量的,而不是可拖动元素的父元素

例如,如果父容器偏移了一个
边距left:200px
,则当您尝试向右拖动紧靠容器左边框的元素时,仅当光标位于该左边框右侧200像素时,它才会开始移动

对于实际的演示,请参见(我无法在JSFIDLE上复制):

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


有什么想法吗?

您可以使用$(element).offsetParent()获得父项偏移量。当父元素处于绝对位置时尤其方便。 您可以编写一个循环来遍历所有父元素并合成它们的偏移量

仅供参考,您的演示在支持触摸的设备上不起作用;)

更新
我看了你的演示(终于又在电脑上了)。如果删除div.container的“position:relative”(位置:相对),拖拽表将按预期工作(或者至少我认为它们的行为是:D)。

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

但我不确定如何在可拖动的上下文中实现这一点。谢谢您的帮助。我对draggable.js做了一些修改,这些修改实际上从一开始就导致了这个问题。