jQuery Fade - 在第二次迭代之后突破

时间:2013-04-23 13:00:25

标签: 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 个答案:

答案 0 :(得分:1)

问题是当你换行时,你没有将第一个项目的不透明度设置回零。

我将您的checker功能更改为:

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

似乎是work

我猜您也可以将调用移至checker,然后转到设置不透明度的切换台中的行之前。