2011-07-04 97 views

回答

7

给它们一个普通的类,并在使用each()[docs]方法的循环中执行fadeIn()[docs],同时使用delay()[docs]方法延迟每个给定的持续时间乘以循环的索引。

$('li.someClass').hide().each(function(i) { 
    $(this).delay(i * 400).fadeIn(); 
}); 

每个元素将比前一个晚400毫秒开始。

例子:http://jsfiddle.net/4ANCj/

+0

漂亮,谢谢。有什么方法可以浏览jsfiddles吗?我对此非常陌生 – iamwhitebox

+0

@ WHITEB0X:不确定你的意思。你的意思是像一个中央的脚本库吗?我不知道jsFiddle有任何形式的脚本公开展示。我很确定你需要其他人发布的直接链接。但是谁知道?注册一个帐户,您可能会发现更多功能。 – user113716

+0

很好的解决方案。我从来没有信任JavaScript定时器是100%准确的,虽然在未知的浏览器,CPU等,更多的是自己的回调粉丝。道具,尽管我甚至不会想到这种方法。 – AlienWebguy

3
function fade_in_recursive(e,duration,callback) 
{ 
    $(e).fadeIn(duration,function() 
    { 
     if($(e).next().length == 0) 
     { 
      if(typeof(callback) == 'function') 
      { 
       callback(); 
      } 
      return; 
     } 
     else 
     { 
      // Apply recursion for every sibling. 
      fade_in_recursive($(e).next(),duration,callback); 
     } 
    }); 

} // End fade_in_recursive 

$(function() 
{ 
    fade_in_recursive($('ul li:first-child'),500); 
}); 

http://jsfiddle.net/2s4L8/