设置一个容器,将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
图像的高度负的图像减去容器的高度((conta iner.height() - image.height())* -1)。
这里是上述解决方案的的jsfiddle:http://jsfiddle.net/J9BM8/1/
感谢您的快速回复。我如何让它始终朝着同一个方向循环?所以它不会倒退到顶端,而是在它到达最后时从头开始循环呢? – sostacked
了解它...添加了$ image.css('top','0px');在animate_img()之前;在第一个完整的功能。再次感谢! – sostacked
不客气。请记住,您还可以以“三个”维度对图像进行动画处理。我做了一些与上述代码非常接近的代码,它以二维方式滚动,当它碰到特定的点时,它会改变图像的高度/宽度以模拟放大。 – Jasper