2009-08-18 17 views
5

मेरे पास 10 छवियों वाला एक पृष्ठ है और मैं छवि डाउनलोड होने के बाद उन्हें एक-दूसरे में फीका करना चाहता हूं। मैं छवि को कैसे लोड कर सकता हूं और प्रदर्शित होने के लिए तैयार कैसे हो सकता हूं? और क्या मुझे लोड की गई छवियों के माध्यम से लूप करना चाहिए और एक बार फीका होना चाहिए लोड करने के लिए प्रतीक्षा करें?jquery: छवि के बाद छवि में फीका

उत्तर

6

बस छवि पर लोड() ईवेंट का उपयोग करें। जैसे

$('#some_image').hide() 
    .load(function() { 
     $(this).fadeIn(); 
    }) 
    .attr('src', 'images/headshot.jpg') 
+0

तो लोड फ़ंक्शन केवल तभी निष्पादित होगा जब छवि पूरी तरह से डाउनलोड हो जाए? – monkeylee

+0

हां, यह तब होता है जब छवि लोड हो जाती है। –

+0

आप इसे यहां क्रिया में देख सकते हैं: http://jsbin.com/ejesu/edit (जब तक jsbin स्निपेट रखता है)। –

0

आप छवियों को पहले से लोड कर सकते हैं (See here) और फिर लूप में क्रमशः फेडेन और फेडआउट विधियों को कॉल करें।

+0

को प्रीलोड लोड काम मिल गया है, लेकिन मैं तब तक छवि को फीका नहीं करना चाहता जब तक कि मुझे पता नहीं चला कि इसे प्रीलोड किया गया है? – monkeylee

+0

आप उस छवि ऑब्जेक्ट की ऑनलोड ईवेंट का उपयोग कर सकते हैं जिसे आपने अभी लोड किया है: objImage.onLoad = imagesLoaded() ;. चित्र लोड होने के बाद छवियों को लोड किया गया फ़ंक्शन कहा जाता है। वहां अपने फेडेन फीडआउट सामान रखो। – maxpower47

0

(क्रिस एरिक्सन के जवाब के आधार पर)

आप डोम (अपुष्ट में जोड़ने से पहले छवि के लिए घटना जोड़कर संभावित दौड़ की स्थिति से बचने के लिए सक्षम हो सकता है लेकिन मैं इसे खेलना पसंद सुरक्षित)। यह विधि एक दूसरे के शीर्ष पर लुप्तप्राय छवियों के लिए भी अच्छी है।

यही वह गैलरी नियंत्रण के लिए उपयोग कर रहा है जहां मैं एक और छवि के शीर्ष पर एक छवि जोड़ता हूं और इसे फीका करता हूं - तो अगर मैं पहले से ही 2 छवियों को जोड़ चुका हूं तो मैं नीचे की छवि को हटा देता हूं।

<div id="images_container"></div> 

सीएसएस इस तरह स्थापित किया जाना चाहिए या छवियों के बजाय एक दूसरे के ऊपर पर होने का ढेर होगा:

var url = .....; 
var container = $('#images_container'); 

$("<img />").hide().load(function() { 
    $(this).fadeIn(); 
}).attr('src', url).appendTo($(container)); 

if ($(container).children().length > 2) { 
    $(":nth-child(1)", container).remove(); 
} 

यहाँ एचटीएमएल है।

#images_container { 
    position: relative; 
} 

#images_container { 
    position: absolute; 
} 
संबंधित मुद्दे