2013-04-23 40 views
0

我正在組裝一個淡入淡出的動畫。
它通過動畫正確運行兩次,幷包含一個正確工作的包裝。jQuery淡入淡出 - 在第二次迭代後打破,通過

在第二個換行上,它捕捉到第一張照片,而不是褪色。
我看起來有點拖延,但第一次正常工作時,我不確定從哪裏出發。

請問有人能協助嗎?
謝謝大家。

鏈接的jsfiddle:http://jsfiddle.net/REbuy/1/

代碼示例如下

的jQuery:

var speed = 2000; 
function switcher(){ 
$('.next').animate({opacity:1}, speed, 'linear', function() 
    { 
     $('.current').removeClass('current'); 
     $(this).addClass('current'); 
     $('.next+li').addClass('next'); 
     $(this).removeClass('next'); 
     $('.next').css('opacity',0); 
     checker(); 
    }); 
} 

function checker(){ 
     if($('.w-slides li:last').hasClass('current')) 
     { 
      $('.w-slides li:first').addClass('next'); 
     } 
     else if($('.w-slides li:first').hasClass('next') && $('.w-slides li:last').hasClass('current')) 
     { 

      $('.w-slides li:first').addClass('current');   
      $('.w-slides li.current+li').addClass('next'); 
      $('.w-slides li:first').removeClass('next'); 
     } 
    switcher(); 
    } 
switcher(); 

HTML:

<div> 
    <div class="w-fader"> 
     <ul class="w-slides"> 
      <li class="current"><img src="fader-img-1.png" /></li> 
      <li class="next"><img src="fader-img-2.png" /></li> 
      <li><img src="fader-img-3.png" /></li>  
     </ul> 
    </div> 
</div> 

回答

1

你的問題是,當你包,你不將第一項的不透明度設置回零。

我改變了你checker功能如下:

function checker(){ 
if($('.w-slides li:last').hasClass('current')) 
    { 
     $('.w-slides li:first').addClass('next').css('opacity',0); 
    } 
} 

而且它似乎work

我猜或者,你可以只是你要checker呼叫切換,你設定的行前移到不透明度。

+0

謝謝馬特。一個簡單的錯誤,當我看到它時,但實時更新所有值時,螢火蟲似乎有點古怪。 – Joe 2013-04-23 13:36:40