2013-07-15 27 views
1

我正在使用imageSlider,我已經將div和設置div的背景圖像。在頁面加載後臺頁面需要大量的時間來加載圖像。有沒有辦法先加載緩存中的所有背景圖像,一旦加載我可以顯示主Div ..在緩存中加載Div背景圖片

我正在閱讀xml文件,然後設置div的背景圖像逐一。

$('#myImageFlow').append('<div id="id'+k+'" alt="div'+k+'" class="sliderImage" width="280" height="310" style="visibility:hidden"> <div class="ffrontText" id="ff'+k+'">'+frontDiv[k]+'</div><div class="borderdiv" id="b'+k+'"></div><div class="borderdiv1" id="bd'+k+'"></div><div class="reflection" id="ref'+k+'"></div> <div class="overlay" id="o'+k+'"></div></div>'); 

任何建議。

enter image description here

+0

只是一個標準的圖像預加載應該爲你做的工作。 – Archer

+0

@Archer我不是在使用img ..我想設置div背景圖片 – anam

+0

我知道,但它的緩存完全一樣,無論您如何使用它,因此首先將其作爲圖片元素加載,然後顯示頁面將會工作。預加載是預加載,無論:) – Archer

回答

0

可以創建與兩個參數(圖像源陣列和回調)的功能,並且調用裝載的所有圖像之後的回調函數。

例子:

preload_images = function(images, callback) { 
    var images_count = images.length; 
    var loaded_count = 0; 
    $.each(images, function(index, src) { 
     var image = $('<img src="' + src + '">'); 
     image.load(function() { 
      loaded_count++; 
      if (loaded_count == images_count && callback) { 
       callback(); 
      } 
     }); 
    }); 
} 

preload_images(['1.jpg', '2.jpg', '3.jpg'], function() { // pass background images in array 
    console.log('background images preloaded'); 
    // Show main div 
});