【问题标题】:Jquery display images one after anotherjquery一张一张显示图片
【发布时间】:2010-11-07 13:15:55
【问题描述】:

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

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


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

}});

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

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

对此的任何帮助将不胜感激,我在这方面遇到了心理障碍

【问题讨论】:

  • $('#galleryThumbs img');以上是什么意思?所有图像的 ID 为“galleryThumbs”?我可以在不同的图像标签中使用相同的 ID 吗?如果是这样,在不同的标签中指定相同的 id 有什么用?
  • @lax - 这意味着,获取元素内所有 ID 为 galleryThumbs 的图像

标签: jquery


【解决方案1】:

您可以为每个人添加一个.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')
});

【讨论】:

  • 嗨,很酷是有道理的,只是我得到一个语法错误,'延迟不是函数'
  • @user499846 - 您是否使用大写字母D?它是区分大小写的 :) 如果你唱的是小写,那么你使用的是哪个版本的 jQuery?
  • 我正在使用 jquery-1.4.3.min.js
  • @user499846 - 您使用的是.Delay() 还是.delay()
  • 您好,很抱歉不知道发生了什么,我清除了缓存并重新启动浏览器,错误消失了!谢谢您的帮助!!
猜你喜欢
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
相关资源
最近更新 更多