逐个淡入元素,然后将它们全部淡出并重新开始

时间:2011-04-14 16:22:18

标签: jquery javascript-events fadein fadeout

我需要淡入几个列表元素,然后淡出它们并重新开始。我已经获得了我在此处找到的代码:http://jsfiddle.net/mqthK/,这里指出了Jquery: Fade multiple elements one after the other。但是,我需要递归地运行这个代码(即 - 淡出所有元素,然后再次调用该函数并重新开始)。

有人可以为此分享正确的代码吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

如果您更新到jQuery 1.4.4或更高版本,则可以使用fadeToggle方法。

如果选择了要淡化的所有元素,并将下一个元素的索引发送到显示/隐藏,则可以轻松循环并重新启动:

http://jsfiddle.net/mqthK/48/

function fadeLI(elem, idx) {
    elem.eq(idx).fadeToggle(500, function() {
        fadeLI(elem, (idx + 1) % elem.length);
    });
}

fadeLI($("#list li"), 0);

答案 1 :(得分:0)

检查下一个元素;如果没有,你就在列表的末尾;然后将所有内容淡出并使用第一个元素运行。

答案 2 :(得分:0)

将fadeLI更改为:

工作示例:http://jsfiddle.net/mqthK/45/

function fadeLI(elem, show) {
        if(elem.length == 0){
            fadeLI($("#list li:first"));
        }
        if(elem.is(":visible")){
        elem.fadeOut(500, function() {
                    fadeLI($(this).next());
            });
        }
        else{
            elem.fadeIn(500, function() {
                    fadeLI($(this).next());
            });
        }
}