Verticle旋转木马jQuery

问题描述:

我试图创建一个旋转木马,我第一次尝试。 http://jsfiddle.net/PmNM5/Verticle旋转木马jQuery

HTML保持UL LI,每个L1具有2个图像两积累的242px宽度和高度= 81px

缺货几个LI中,只有3应该是可见的(即,6个图像将是visble,作为一个LI保持2图像,浮动:每个都留下。)

UL:设置为显示BLOCK,宽度为242px。 HTML显示完美。但旋转木马不起作用,因为我知道我需要聪明地计算出我缺乏的TOP。

<div id="home_carousel"> 
     <ul> 
      <li> 
       <a href="#img1" class="inline cboxElement"><img src="images/home-truck1.jpg"></a> 
       <a href="#"><img src="images/home-truck1.jpg"></a> 
      </li> 

      <li> 
       <a href="#"><img src="images/home-truck1.jpg"></a> 
       <a href="#"><img src="images/home-truck1.jpg"></a> 
      </li> 
      <li> 
       <a href="#"><img src="images/home-truck1.jpg"></a> 
       <a href="#"><img src="images/home-truck1.jpg"></a> 
      </li> 
      <li> 
       <a href="#"><img src="images/home-truck1.jpg"></a> 
       <a href="#"><img src="images/home-truck1.jpg"></a> 
      </li> 

JAVASCRIPT:

var myCarousel = { 

    setHeight: function() { 

     var $img = $('li', '#home_carousel'); 
     var total = 81 * $img.length; 

     $('#home_carousel ul').height(total); 

    }, 

    slide: function() { 
     var outPart = $('#home_carousel ul').outerHeight(); 
     $('#home_carousel_up').on('click', function() { 

      var $a = $(this); 

      $('#home_carousel ul').animate({ 
       top: -81 + outPart + 'px' 
      }, 500, 'easeOutBounce'); 

     }); 

     $('#home_carousel_down').on('click', function() { 

      var $a = $(this); 

      $('#home_carousel ul').animate({ 
       top: 81 + 'px' 
      }, 500, 'easeOutBounce'); 

     }); 

    }, 

    init: function() { 
     this.setHeight(); 
     this.slide(); 
    } 

}; 

myCarousel.init(); 
+0

“easeOutBounce”未在基本JQuery库中定义。你还包括JQuery UI效果库吗? – 2013-03-21 05:13:15

+0

我试过这个工作,但我的问题是旋转木马不起作用后第二次点击。由于即时通讯使用TOP的静态值动画。我需要一个关于如何每次获得动态TOP的UL帮助! – STEEL 2013-03-21 05:25:21

+0

这样的事情。 http://jsfiddle.net/PmNM5/10/ – user991554 2013-03-21 05:52:54

尝试this

我写的所有逻辑顶偏,停止动画在结束点。

当滚动顶部的条件是:

($('#home_carousel ul').position().top - 81) > (242 - outPart) 

和滚动下来的时候条件是:

$('#home_carousel ul').position().top + 81 <= 0 

我已经harcoded所有值。请将数字81和242(包装高度)存储在变量中。如果你通过jquery.outerHeight方法来计算高度,那将会很好。在这种情况下,如果由于标记或CSS的变化而使高度发生变化,那么代码不会中断。

+0

谢谢,我被困在逻辑。有用。现在我试着如果它的最后,然后点击TOP应该倒带。 – STEEL 2013-03-21 06:32:07