2012-03-25 112 views
4

我一直拉我的头发试图使这项工作。jQuery可排序的容器滚动div与溢出汽车

我有两个连接sortables,像这样定义的:

var sortlists = $("#List1, #List2").sortable(
{ 
    appendTo: 'body', 
    tolerance: 'pointer', 
    connectWith: '#List1, #List2', 
    revert: 'invalid', 
    forceHelperSize: true, 
    helper: 'clone', 
    scroll: true 
}); 

这里是一个example of jsfiddle

因为页面设置的一个环节,既sortables被包含在div的溢出:汽车,他们也被包装在父容器中,溢出设置为隐藏。出于理由,我们可以说没有办法解决这个问题。

有没有办法让容器元素在辅助器朝容器的下边缘或上边缘定位时滚动?

任何帮助,将不胜感激!

回答

2

随着helper:'original',我得到你所寻求的滚动行为(在Opera 11.61中)。

forked fiddle

编辑:这是一个version of the fiddle with "ganged-scrolling"

+0

感谢您的答复!这几乎是我想要的行为,但该示例仅滚动它自己的列表(而不是当您移动到连接列表时)。另外,我稍微修改了我的问题,并创建了一个新的分支,看起来'原创'对于“overflow:hidden”不太好。 – tribe84 2012-03-25 01:59:59

+0

啊哈,你想“组合滚动”!如果你想在所有情况下都进行组合滚动,这是微不足道的(见上面的编辑)。如果你想在使用滚动条的时候为了可排序的拖动和独立滚动而组合滚动,那将会涉及更多。 – 2012-03-25 03:44:21

+0

Doh!我突然意识到你的意思。我只是意识到你可以从一个列表拖到另一个列表。忘记组合滚动!我觉得你被窥探了。使用“克隆”既不会列出自动滚动,也不会使用“原始”,拖动的项目会消失,直到它被删除。解决方案需要在插件内部 - 第三个“混合”辅助选项可能会在两个方面提供正确的行为。我认为你最好的选择是接近插件作者,因为它会让其他人有时间进入内部工作。他可能已经在他的待办事项列表中有这个。 – 2012-03-25 06:56:37

0

叉形捣鼓“成组滚动”不幸的是具有约束(视觉),所选项目到它自己的div的很讨厌的副作用。

1

我认为这是你想要的。从div(可滚动)拖动到div(可滚动),拖动的项目不会出现在div后面。

http://jsfiddle.net/nURN5/1/

.document.body.appendChild //required to add code with link... 

下一个最好的办法是真正拖动项目的副本...