如何创建垂直图像滚动条?

时间:2012-05-08 10:33:23

标签: javascript jquery

我在网站上有一个页面,该页面应该显示建筑物每个楼层的图像。目前我有一个左右面板,左侧面板包含楼层列表。然后,我需要用户能够点击其中一个链接,并在右侧有一个图像滑块,从地面到顶层循环显示图像,直到它到达相应的图像。

通常在这种情况下我会使用jquery cycle,但我需要旋转器快速浏览两者之间的所有图像。

例如:我有一幢10层楼的建筑,我正在查看第一层。我点击9楼,这意味着我需要滑块快速翻到1-9层,最后到10点。我怎么能这样做?上面的链接将允许我进入10楼,但它不会翻过中间的所有楼层。有谁知道我怎么能达到这个效果?

谢谢!

1 个答案:

答案 0 :(得分:3)

实际上非常简单:

jsBin demo

假设你有这个HTML:

<div id="thumbs">
  <!-- ... more images here -->
  <img src="thumb/image_4.jpg" />
  <img src="thumb/image_3.jpg" />
  <img src="thumb/image_2.jpg" />
  <img src="thumb/image_1.jpg" />  
</div>

<div id="gallery">  <!-- overflow hidden -->
  <div id="slider">  <!-- position absolute -->
    <!-- ... more images here -->
    <img src="image_4.jpg" />
    <img src="image_3.jpg" />
    <img src="image_2.jpg" />
    <img src="image_1.jpg" />            
  </div>  
</div>

jQuery看起来像这样:

var galH = 320; // SET HERE THE GALLERY HEIGHT

var N = $('#slider img').length;

$('#slider').css({ top: -galH*(N-1) }); // initial kick to bring the #slider to the first image

$('#thumbs img').on('click',function(){
  N = $(this).index();
  $('#slider').stop(1).animate({top: -galH*N},1000);
});