古い質問ですが、今日はこれに数時間苦労したので、学んだことを共有したいと思いました.
ソート可能なスクロールは、scrollParent のオフセット、現在のスクロール位置、現在の項目の位置、および scrollSensitivity の関数です。ドラッグを開始すると、ソート可能オブジェクトは _mouseStart を実行します。これにより、scrollParent が設定され、現在の並べ替えのオフセットがキャッシュされます。この知識があれば、over イベント ハンドラーで小さなシャッフルを行うことができます。
over: function (event, ui) {
ui.item.data('sortableItem').scrollParent = ui.placeholder.parent();
ui.item.data('sortableItem').overflowOffset = ui.placeholder.parent().offset();
}
ドラッグされた要素がコンテナーを変更するときに発生します。over イベントをヒットすると、プレースホルダーは既に新しいコンテナーに移動しています。コードは新しい scrollParent を取得し、オフセットを再キャッシュします。
簡潔にするために、Tats_innit のフィドルをフォークしました: http://jsfiddle.net/3E2Hg/84/
scrollParent はイベント構造全体の他の場所で参照されるため、これが防弾かどうかはわかりません。それでも、これは良い出発点だと思います。問題が発生した場合は、この回答を更新します。