2012-03-25 108 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... 

下一個最好的辦法是真正拖動項目的副本...