Использование jQuery Draggable UI: http://jsfiddle.net/antonysastre/j9UUm/10/
В основном используется локализация для перетаскиваемого элемента, который динамически вычисляется и скрывается с помощью переполнения.
Короче говоря:
HTML
<div class="body">
<div class="thumbnail">
<div class="containment">
<div class="image"><img src="http://lorempixel.com/200/260/fashion" /></div>
</div>
</div>
</div>
Javascript
$(document).ready(function() {
$('.thumbnail .containment img').each(function() {
var height = $(this).height();
var overflow = (height - 160); // Using explict value here for now.
var containerHeight = (overflow * 2) + 160; // And also here.
var containerTop = Math.abs(overflow) * -1;
$(this).parents('.containment').css({'top': containerTop});
$(this).parents('.containment').css({'height': containerHeight});
})
$('.image').draggable({
containment: 'parent',
axis: 'y'
});
});
CSS
.containment { position: relative; }
.thumbnail {
width: 160px;
height: 160px;
position: relative;
overflow: hidden;
}
.thumbnail .image { position: relative; }
.thumbnail img { max-width: 160px; }