使用JQuery动态加载列表项

时间:2011-02-08 11:34:53

标签: javascript jquery

我想构建我的JQuery,一次淡出每个项目。这是an example of the behavior,这是我到目前为止的JQuery:

$('li').css('display', 'none') .delay(1000).fadeIn(800)

6 个答案:

答案 0 :(得分:3)

这可能不是最好的解决方案,但应该有效:

$('li').each(function(i){
  var el = this;
  setTimeout(function(){
    $(el).fadeIn(800);
  },800*i)
});

只是为了好玩,一个递归版本:

function animateLi(i){
  $('li').eq(i).fadeIn(800);
  if ($('li').eq(i+1).length>0)
  {
      setTimeout(function(){animateLi(i+1)},800);
  }
}
animateLi(0);

答案 1 :(得分:2)

也许是这样的:

var delay = 500, t = 0;
$("li").css('display', 'none').each(function(){
  t += delay;
  var $li = $(this);
  setTimeout(function(){
    $li.fadeIn();
  },t);
});

答案 2 :(得分:0)

遍历li,并使用setTimeout为该li排队动画。

$('li').each(function () {
    var li = this;
    animateLi = function () {
        li.fadeIn(800);
    }
    setTimeout(animateLi, timeout);
    timeout += 100;
});

答案 3 :(得分:0)

Ivans方法略有不同

$(function() {
    $('ul li:hidden').each(function(idx) {
        setTimeout(function(el) {
            el.fadeIn();
        }, idx* 1000, $(this));
    });
});

使用fadeIn回调函数而不是setTimeout

的递归函数
function DisplayOneByOne(){
    $('ul li:hidden:first').fadeIn('2000',  DisplayOneByOne);
}

答案 4 :(得分:0)

以下是您的操作方法:

var delay = 200, t = 0;
$("li").css('display', 'none').each(function(){
    t += delay;
    var $li = $(this);
    setTimeout(function(){
        $li.fadeIn(1900);
    },t);
});

答案 5 :(得分:0)

还有另一种方法可以逐渐淡化元素:

$.fn.fadeInNext = function(delay) {
    return $(this).fadeIn(delay,function() {
        $(this).next().fadeInNext();
    });
};

$('li').hide().first().fadeInNext(1000);