2014-09-02 84 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