我知道有一堆jQuery預加載線程,並且我已經閱讀了大部分代碼,但仍然無法找到解決我的問題的方法。jQuery爲動畫預加載圖像
我有一個「停止運動」動畫,它是通過使用隊列和基於圖像的順序命名的jQuery構建的。我不想運行這個動畫,直到它所需的所有圖像都被加載完畢。由於不同的產品類型有不同的動畫,並且所有的圖像都已經由客戶端生成,因此目前並不是一種選擇。
在力矩My預加載代碼是如下:
function preloadImages($img, $frames){
var $imgsrc = $img.attr("src");
var $getext = $imgsrc.split('.');
var $ext = $getext[1];
var $exploded = $getext[0].split('_');
var $newsrc = "";
for (var i=1; i <= $frames; i++){
for (var j=0; j < $exploded.length-1; j++){
$newsrc = $newsrc + $exploded[j] + "_";
}
$newsrc = $newsrc + i + "." + $ext;
var image_preload = new Image();
image_preload.src = $newsrc;
}
}
如肋骨是總的圖像的數量的序列(6或12在該階段)中,以及用於圖像的命名約定是如下:
Brand_Product_Category_ProductID_SequenceNo.jpg。
我想要做的不是加載保存起始圖像的div,直到所有這些圖像已經使用下面的文檔準備好的片段被預加載,但是這似乎不能正常工作,即,在預先載入所有需要的圖像之前顯示持有人,因此動畫不能流暢運行。
$(".holder").hide();
preloadImages($(".holder img"), 6);
$(".holder").fadeIn("slow");
我想我需要某種回調,但我不知道如何實現它。
你現在的代碼有什麼問題? – 2010-12-15 01:09:37
圖像預加載之前顯示持有人 - 編輯我的問題以包含此內容。 – pingu 2010-12-15 01:29:18
你的命名約定是什麼?爲什麼你用$符號加前綴所有變量名? (這有點令人困惑) – 2010-12-15 01:31:05