Установите контейнер с overflow
, установленным на hidden
и размерами, которые вы хотите отобразить. Затем добавьте ваше изображение как дочерний элемент этого контейнера и анимируйте его положение:
HTML
<div id="container">
<img src="src_of/img.jpg" width="600" height="1200" />
</div>
CSS
#container {
position : relative;
width : 600px;
height : 200px;
overflow : hidden;
}
#container > img {
position : absolute;
top : 0;
left : 0;
}
JS
$(function () {
var $image = $('#container').children('img');
function animate_img() {
if ($image.css('top') == '0px') {
$image.animate({top: '-1000px'}, 2500, function () {
animate_img();
});
} else {
$image.animate({top: '0px'}, 2500, function () {
animate_img();
});
}
}
animate_img();
});
Обратите внимание, что анимация top
изображения отрицательна относительно высоты изображения минус высота контейнера ((container.height () - image.height ()) * -1).
Вот jsfiddle вышеуказанного решения: http://jsfiddle.net/J9BM8/1/