Можно ловить мышиные события и изменять координаты кликнутого блока (или пачки блоков).
Сделал простой
fiddle:
var target, pos = {dx:0, dy:0};
function onMouseDown(e){
target = $(e.target);
pos.dx = parseInt(target.css('left').replace('px','')) - e.pageX;
pos.dy = parseInt(target.css('top').replace('px','')) - e.pageY;
}
function onMouseMove(e){
var dx, dy;
if(!target) return;
target.css({
left: (e.pageX + pos.dx) + 'px'
});
}
function onMouseUp(e){ target = undefined }
$('.dragme').on('mousedown', onMouseDown);
$('#container').on('mousemove', onMouseMove);
$('#container').on('mouseleave', onMouseUp);
$('.dragme').on('mouseup', onMouseUp);