Хорошо,
Вот маршрут, по которому я пошел ...
Когда страница загружена, я добавляю контейнер div вокруг перетаскиваемого списка. Я установил его высоту в два раза больше, чем в списке, затем немного расположил его на странице:
<script type="text/javascript">
$(document).ready(function() {
CreateContainerDiv();
$('.dragPanel').addClass("hover");
$('.myList').draggable({ axis: 'y', containment: 'parent' });
});
function CreateContainerDiv() {
var dragPanel = $('.dragPanel');
var dragTarget = $('.myList');
// add the container panel
var newPanelHeight = dragTarget.outerHeight() * 2 - dragPanel.outerHeight();
dragTarget.wrap(document.createElement("div"));
// set its height and put it in the right place
dragTarget.parent().css("height", newPanelHeight);
dragTarget.parent().css("position", "relative");
var newPanelPosition = ((dragTarget.outerHeight() * -1) / 2);
dragTarget.parent().css("top", newPanelPosition);
}
</script>
Список содержится в этом новом элементе.
Это, кажется, делает работу, но позиционирование немного шатко, если к списку применены какие-либо отступы / поля. Любые мысли об этом будут оценены!
------ Редактировать ---------
Хорошо, я думаю, что решил проблему размещения. Я превратил это в плагин, чтобы другие люди не тратили время на создание этой функциональности.
jQuery Drag-gable List на Github