Jquery一个接一个地显示图像

时间:2010-11-07 13:15:56

标签: jquery

这可能是这里的几个问题,我正在创建一个图像库,并希望缩略图一个接一个地淡入页面,这需要动态的div内的图像数量(对于重用其他画廊页面)

$(function {
var $gallImages = $('#galleryThumbs img');


for(i=0; i<=$gallImages.length; i++){
    $(document.getElementById('galleryThumbs').getElementsByTagName('img')[i]).addClass('done').fadeIn('slow');

}});

这会在加载的同时显示所有图像:(

还有更好的方法在jQuery中进行元素收集我找不到任何关于使用图像标记所需的数组的信息

任何有关这方面的帮助都将受到赞赏,我正在对此进行精神障碍

1 个答案:

答案 0 :(得分:3)

您可以为每个添加.delay(),如下所示:

$(function {
  $('#galleryThumbs img').each(function(i) {
    $(this).delay(i*600).fadeIn('slow')
  });
});

我不确定什么时候应该添加你的课程,你可以立即或.queue()添加它,具体取决于它是否应该在淡入淡出之前发生。这会在第一个中立即消失,第二个600毫秒后(第一个淡入淡出结束时),下一个淡入淡出等等。如果您希望重叠低于600(这是'slow')。

要立即添加课程,请逐一淡出:

$('#galleryThumbs img').addClass('done').each(function(i) {
  $(this).delay(i*600).fadeIn('slow')
});

或者,在褪色之前添加它:

$('#galleryThumbs img').each(function(i) {
  $(this).delay(i*600).queue(function(n) { $(this).addClass('done'); n(); })
                      .fadeIn('slow')
});