滚动后,jQuery UI Dragable未粘附到网格
我正在使用一个set滚动后,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
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,继续滚动,然后再次拖动..!哦,好吧。。