2013-04-23 74 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