延迟的奇怪行为?

时间:2011-12-24 03:47:56

标签: javascript jquery

在下面的代码中,页面将淡入,然后它会淡入左侧的列表项,然后它会在右侧的每个缩略图中淡入淡出。但由于我使用.delay(),它最终会跳过部分或全部缩略图的加载。除了.delay()之外还有什么别的东西可以用来在它们开始之前停止拇指的执行吗?

//Showcase
    $('#showcase').animate({'opacity' : 0}, 0);
    fadeInDivs(['#showcase']);
    function fadeInDivs(els) {
        e = els.pop();
        $(e).   delay(750).animate({'opacity' : 1}, 1000, function(){
            if (els.length) fadeInDivs(els);
        });
    };

    $('#showcase').queue(function(){

        //fade in each filter
        $('#filters li').each(function(i, item) {
            setTimeout(function() { $(item).animate({'opacity' : 1}, 1000); }, 50 * i);
        });

        //fade in each thumbnail
        $('.thumb').delay(1000).each(function(i, item) {
            setTimeout(function() { $(item).animate({'opacity' : 1}, 1000); }, 500 * i);
        });
    });

1 个答案:

答案 0 :(得分:1)

试试这个fiddle。我想这就是你要找的东西。如果不是,请告诉我。这是jQuery代码:

    $('#showcase').queue(function() {
    var i = 0;
    var length = $('#filters li').length;
    //fade in each filter
    $('#filters li').each(function(i) {

        //alert(i);
        $(this).delay(750*i).animate({
            'opacity': 1
        }, 1000, function() {
            if (i == length) {
                //fade in each thumbnail
                $('.thumb').each(function(i) {
                    $(this).delay(750 * i).animate({
                        'opacity': 1
                    }, 1000);
                });
            }
        });
        i++;
    });

});