2011-12-24 95 views
0

在下面的代码中,页面会淡入,然后它会在左侧的列表项中淡入,然后它会在右侧的每个缩略图中淡入。但由于我使用.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

试试这个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++; 
    }); 

}); 
+0

IM试图让#filters里当做到这一点我想.thumbs淡入到,然后褪色..继承人小提琴http://jsfiddle.net/UsXWn /因为你看到照片开始消失在过滤器完成之前 – 2011-12-24 04:45:08

+0

@JoeBobby - 我更新了小提琴。看看这是否更符合你的喜好。 – john 2011-12-24 04:54:30

+0

有没有办法通过改变.queue()中的部分来实现?是否有一个原因,你为什么从动画改为淡入? – 2011-12-24 05:32:48