0
在某些條件下,不同的背景圖像加載:確定身體的背景圖片(CSS)是否已經被加載
$('body').css('background','url(image.png)');
有沒有辦法來確定背景圖像是否已加載?當圖像被加載時,我需要執行一個函數。
在某些條件下,不同的背景圖像加載:確定身體的背景圖片(CSS)是否已經被加載
$('body').css('background','url(image.png)');
有沒有辦法來確定背景圖像是否已加載?當圖像被加載時,我需要執行一個函數。
您可以將圖像加載到一個隱藏<img>
標籤和分配onload
處理程序的標籤。在onload處理程序中,可以填充正文的背景圖像(因爲圖像現在位於瀏覽器緩存中,所以應該或多或少地立即發生),然後運行自定義代碼。
var hiddenImg = new Image();
hiddenImg.onload = function(){
$('body').css('background','url(' + this.src + ')');
your_custom_onload_code();
};
hiddenImg.src = 'image.png';
var img = new Image();
img.onload = function() { $('body').css('background','url(image.png)'); };
img.src = src;
你可以添加一個'Image'元素和'src =「image.png」'並附加一個'onLoad'處理函數。瀏覽器只會載入一次圖像,所以如果在設置了background-image屬性之前創建了Image元素,你應該可以使用onLoad處理函數。未經測試,但:( – jensgram 2012-08-02 07:15:20
已發佈的答案可能對大多數情況下正常工作,但要注意圖像的「加載」事件有一些注意事項。[閱讀](http://api.jquery.com/load-event/ )(向下滾動到「使用圖像時加載事件警告」部分) – 2012-08-02 07:19:48
@FabrícioMatté注意事項相當令人不安,但我使用本機onload,即'img.onload = function(){}'Is比使用jQuery的'.load()'更安全嗎? – Obay 2012-08-02 07:55:07