Я добился определенного прогресса, но это все еще не работает так, как мне бы хотелось.
Вот как у меня теперь это частично работает (используя разметку выше):
var dragCatch = function(event, ui) {
var containerOffset = $('#container').offset().top;
var containerBottom = containerOffset + $('#container').height();
var componentHeight = $(this).height();
if (event.pageY > containerBottom - componentHeight - 2) {
$('#container').height(event.pageY - containerOffset + componentHeight + 2);
$(this).css('top', event.pageY - containerOffset);
}
};
$(this).each(function() {
$(this).draggable({
grid: [117,1]
,snap: '.draggable'
,snapMode: 'outer'
,containment: '#container'
,drag: dragCatch
})
});
Этот код успешно изменит размер #container div, но перестанет перемещать .draggable div, где #container использовался для завершения. Если я отпущу, затем снова перетащу, то .draggable снова переместится туда, где заканчивается #container, а затем остановится, даже если #container продолжит увеличиваться в размере.