2010-07-19 22 views
12

क्या सीएसएस पृष्ठभूमि छवि के लोड पर एक ईवेंट ट्रिगर करने के लिए jQuery का उपयोग करके कोई तरीका है?पृष्ठभूमि छवि लोड पर ट्रिगर घटना

+0

की संभावित डुप्लिकेट [मैं कैसे अगर एक जाँच कर सकते हैं पृष्ठभूमि छवि लोड हो गई है?] (http://stackoverflow.com/questions/5057990/how-can-i-check-if-a-background-image-is-loaded) – azerafati

उत्तर

22

आप इस तरह यह कर सकता है,

demo

$('<img>').load(function(){ 
    // make sure to bind the load event BEFORE setting the "src" 
    alert('image loaded'); 
}).attr('src',function(){ 
    var imgUrl = $('body').css('background-image'); 
    imgUrl = imgUrl .substring(4, imgUrl .length-1); 
    return imgUrl; 
}).each(function() { 
    // fail-safe for cached images which sometimes don't trigger "load" events 
    if(this.complete) $(this).load(); 
}); 
+0

क्या यह तब तक प्रतीक्षा करेगा जब तक कि छवि लोड न हो जाए के मूल्य पर एक वापसी है 'पृष्ठभूमि-छवि' संपत्ति? – Squirkle

+1

असल में क्या हुआ यह छवि लोड होने की प्रतीक्षा करेगा ... इस मामले में शरीर टैग की पृष्ठभूमि छवि ... – Reigel

+0

यह एक सुंदर साफ चाल है। यह कैसे काम करता है? मैं यह नहीं समझ सकता कि $ ('') लक्ष्यीकरण कर रहा है ... – Squirkle

2
$('<img>').attr('src',function(){ 
    var imgUrl = $('#body').css('background-image'); 
    imgUrl = imgUrl .substring(5, imgUrl .length-2); 
    return imgUrl; 
}).load(function(){ 
    //Do Something 
}); 

मदद नहीं कर सका लेकिन लगता है कि इसके बाद के संस्करण कोड बेला में काम नहीं करता। ऐसा लगता है क्योंकि यह सिर्फ "/img-path.jpg" के बजाय "url ('/ img-path.jpg') देता है।

हालांकि यह विधि अभी भी IE में विफल हो जाती है। किसी के पास यानी ठीक है?

+2

मैंने तय किया है आपके कोड और टिप्पणियों के आधार पर स्वीकार्य उत्तर –

0
$(document).ready(function(){ 
$('img, .hasBGI').css('opacity',0) 

$('.hasBGI').each(function(){ 
    var $this = $(this) 
     $bgi = $('<img src="'+/*folderFix*/$this.css('backgroundImage')+'">') 
     // $bgi.css(/*hiddingStyle*/) 
     $('body').append($bgi) 
     $bgi.load(function(){ 
      $(this).remove() 
      $this.animate({opacity:1}) 
     }) 
}) 
$('img').load(function(){ 
    $(this).animate({opacity:1}) 
}) 

})

+0

मेरा इरादा छवियों के लिए थाउथलोड लोड – domSurgeon

संबंधित मुद्दे