2014-09-02 52 views
0

我有这样的:jQuery的周期寻呼机scrollTop的

<div id="slides"> 
    <img src="images/1.jpg"> 
    <img src="images/2.jpg"> 
    <img src="images/3.jpg"> 
    <img src="images/4.jpg"> 
    <img src="images/5.jpg"> 
</div> 

<div id="t-container"> 
    <ul class="thumbs"> 
     <li><img src="images/1.jpg"></li> 
     <li><img src="images/2.jpg"></li> 
     <li><img src="images/3.jpg"></li> 
     <li><img src="images/4.jpg"></li> 
     <li id="lasty"><img src="images/5.jpg"></li> 

    </ul> 
</div> 

和我的JavaScript代码是:

 $(document).ready(
     function() { 
      $('#slides').cycle({ 
       fx: 'scrollLeft', 
       pager: 'ul.thumbs', 
       pagerAnchorBuilder: function(index, el) { 
        return ''; 
       }, 

       before: function() { 
        if ($('#lasty .activeSlide').length > 0) { 
         $('.thumbs').animate({ 
          scrollTop: $('.thumbs').scrollTop() + 100 
         }, 3000); 
        } 
       } 
      }) 
     } 
    ); 

我的最后2天搜索谷歌和无法到达的任何解决方案。

我需要的是动画li的最后一个孩子动画100px时,它得到class=activeSlide。因为我设置了高度,因此缩略图图像容器不显示最后一张幻灯片,并且它被隐藏。

我需要当最后的li它得到activeSlide它应该移动到可见区域,因为它被'overflow:hidden'属性隐藏。

回答

0

我认为你已经使用了错误的选择这里$('#lasty .activeSlide')

如果最后li将获得类.activeSlide,选择应该是$('#lasty.activeSlide')

也使用可以使用.hasClass()简化逻辑

if($('#lasty').hasClass('activeSlide'))

看看这是否有帮助。

+0

Thankyou的答案,但hasClass没有帮助。此外'如果'执行一次。我需要一个无限循环运行的解决方案。 – 2014-09-02 10:18:36

+0

尝试使用'onPrevNextEvent'事件而不是'before'。 [来源](http://jquery.malsup.com/cycle/options.html) – karan3112 2014-09-02 10:23:49