2010-11-07 47 views
0

這也許是一個問題,我在這裏創建一個圖片庫,並希望縮略圖在頁面上逐漸淡入,這需要動態的數量(在其他畫廊頁重用)一個div內的圖像jquery一個接一個地顯示圖像

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


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

}}); 

此負載:(

也就是有沒有更好的方式來做到元素集合在我的jQuery顯示在同一時間的所有圖像找不到任何關於使用圖像標籤所需的陣列的任何信息

任何幫助,將不勝感激,我打一個心理障礙對這個

+0

$( '#galleryThumbs IMG');以上是什麼意思?所有圖像的ID爲「galleryThumbs」?我可以在不同的圖像標籤中使用相同的ID嗎?如果是這樣,在不同的標籤中指定相同的id有什麼用處? – 2011-11-26 05:32:43

+0

@lax - 這意味着,讓我的所有圖像內的元素與'galleryThumbs'的編號 – mrtsherman 2011-11-26 05:36:31

回答

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') 
}); 
+0

嗨,很酷很有道理,只有我得到這個語法錯誤,'延遲不是一個函數' – user499846 2010-11-07 14:52:19

+0

@ user499846-你使用大寫'D'?它是區分大小寫的:)如果你唱小寫,你使用的是哪個版本的jQuery? – 2010-11-07 14:55:13

+0

我正在使用jquery-1.4.3.min.js – user499846 2010-11-07 15:05:42

相關問題