滚动后,jQuery UI Dragable未粘附到网格

滚动后,jQuery UI Dragable未粘附到网格,jquery,jquery-ui,scroll,draggable,Jquery,Jquery Ui,Scroll,Draggable,我正在使用一个setgrid选项使用jqueryui的可拖动功能。我的网格设置为使用[x:130,y:110]约束,网格的容器具有一定的高度,超出了它自己的父容器,允许我滚动。当我有一个可拖动的元素时,我开始拖动它,并在容器中向下滚动一点(同时仍然挂在可拖动的元素上),元素不再附着在网格上 我制作了一个赤裸裸的示例,显示了错误:-尝试开始拖动,并在容器中滚动。如果这还不够解释;请参见错误的GIF(它应位于网格的左上角) 我曾尝试将网格更改为[x:100,y:100],这使得它在Chrome和Op

我正在使用一个set
grid
选项使用jqueryui的可拖动功能。我的网格设置为使用
[x:130,y:110]
约束,网格的容器具有一定的高度,超出了它自己的父容器,允许我滚动。当我有一个可拖动的元素时,我开始拖动它,并在容器中向下滚动一点(同时仍然挂在可拖动的元素上),元素不再附着在网格上

我制作了一个赤裸裸的示例,显示了错误:-尝试开始拖动,并在容器中滚动。如果这还不够解释;请参见错误的GIF(它应位于网格的左上角)

我曾尝试将网格更改为
[x:100,y:100]
,这使得它在Chrome和Opera中工作,因为它们在每个滚动上滚动100像素,而Firefox和IE则没有,因为它们使用软滚动。我还尝试了“黑客”方法,通过jQueryUI的
droppable
进行拖动时,将元素移动到最近网格的中心,但这似乎不是一个可用的解决方案


有没有办法确保可拖动的元素即使在拖动时向下滚动,也会继续附着在网格上

对代码的一个小小的修改,它的工作很好

我用small hack修改了代码,添加了last div作为draggable元素,在您的情况下,它将始终捕捉到父级(overflowContainer),即使我们滚动容器也是如此

$( "#draggable" ).draggable({
      containment: '.overflowContainer',
      grid:[100,100],
      refreshPositions: true,      
      scroll: false,
      snap:".innerContent"
   }); 
检查以下项下的完整解决方案:

使用设置
滚动灵敏度
滚动速度
选项可以工作

我还更改了类
。overflowContainer

请在下面查看

$(函数(){
$(“.dragItem”).draggable({
网格:[130110],
卷轴:没错,
灵敏度:100,
滚动速度:100,
}); 
});
.overflowContainer{
宽度:600px;
高度:500px;
}
.左{
浮动:左;
}
.电网{
宽度:128px;
高度:108px;
背景色:#ccc;
边框:1px纯黑;
}
.clearfix{
明确:两者皆有;
}
dragcontainer先生{
位置:绝对位置;
顶部:8px;
左:8px;
}
dragItem先生{
宽度:50px;
高度:50px;
背景色:青色;
}

拖我

您找到了解决方案吗?不幸的是,没有。我没有:(我最终没有使用可见网格,并将我需要的元素拖动到的区域高度限制为不允许滚动的高度。是的-目前,我已禁用拖动时的滚动。用户必须“拖放”打开div,继续滚动,然后再次拖动..!哦,好吧。。