Вы можете фактически сделать это с внутренним контейнером, ширина / высота которого рассчитана, чтобы позволить изображению перемещаться только на определенное расстояние. Конечно, вы также должны правильно расположить внутренний контейнер.
Вот мой пример:
Markup:
<div id="outer"> <!-- position: relative -->
<div id="inner"> <!-- position: absolute -->
<img src="">
</div>
</div>
Сценарий:
var img = $("img").draggable({ containment: '#inner'}),
h = img.height(),
w = img.width(),
outer = $('#outer'),
oH = outer.height(),
oW = outer.width(),
iH = h + (h - oH),
iW = w + (w - oW),
iT = '-' + ((iH - oH)/2) + 'px',
iL = '-' + ((iW - oW)/2) + 'px';
$('#inner').css({ width: iW, height: iH, top: iT, left: iL });