jquery fadeIn(on)连续单击每个元素

时间:2011-02-07 03:24:26

标签: javascript jquery

我试图将div中的每个元素淡化为fadeIn(in)连续。我知道如何淡化整个区块而不是每个单独的区域。

http://jsfiddle.net/reggi/Km55n/

$('#button').click(function() {
    setTimeout(function() {
        $('#divWithDivs').fadeIn(500);
    }, 300);
});

3 个答案:

答案 0 :(得分:2)

你需要淡化前一个div的完成回调中的下一个div。

例如:

function fadeAll(elems) {
    elems.filter(':hidden:first').fadeIn(1000, function() { fadeAll(elems); });
}

fadeAll($('#parent div'));

Demo
请注意,您需要隐藏孩子,而不是父母。

答案 1 :(得分:0)

$('#divWithDivs').children().first().fadeIn(500, function() {
        $(this).next().fadeIn(500, arguments.callee);
    });

这里的演示基于您的:http://jsfiddle.net/Km55n/2/

答案 2 :(得分:0)

您可以执行this

之类的操作
$('#button').click(function() {
    var show_next = function(elem) {
        if (elem.length) {
            elem.fadeIn(300, function () {
                show_next(elem.next());
            });
        }
    };
    show_next($('div#divWithDivs').children().first()); 
});