2011-11-21 13 views
16

चलाने से पहले fadeOut को पूरा करने की प्रतीक्षा कर रहा था, मैं सोच रहा था कि फीडऑट शुरू होने से पहले फीडऑट पूरा होने तक प्रतीक्षा करने का कोई तरीका है, जैसे कि जब मैं निम्नलिखित कोड चलाता हूं, तो यह एक div को दूसरे के नीचे रखता है, तो जब यह फीका हुआ यह ऊपर चला जाता है ... थोड़ा बदसूरत लग रहा है।jQuery - fadeOut

कोड इस प्रकार है:

$('.sidebarform').fadeOut('slow'); 
$('.sidebarsuccess').fadeIn('slow'); 

उत्तर

39

fadeOut समारोह एक कॉलबैक है कि यह जब एनीमेशन किया जाता है निष्पादित करता है:

$('.sidebarform').fadeOut('slow', function() { 
    $('.sidebarsuccess').fadeIn('slow'); 
}); 
+8

मुझे रखें एन दिमाग कि यदि आपका चयनकर्ता बहुत सामान्य है, तो पूरा तत्व पूरी तरह से फीका हुआ होने पर प्रत्येक तत्व के लिए पूरा हो जाएगा, इसलिए अगर कुछ पहले ही छुपाए गए हैं, तो यह तुरंत आग लग जाएगा। – box86rowh

+2

मैंने @ box86rowh द्वारा वर्णित समस्या का मुकाबला करने के लिए दृश्य चयनकर्ता का उपयोग किया है। देखें: http://api.jquery.com/visible-selector/ –

16

एक अन्य विकल्प वादा जो सभी लंबित एनिमेशन के लिए इंतजार करेंगे उपयोग कर रहा है .sidebarform पर पहले पूरा करने के लिए पहले भी अगर वे कहीं और शुरू किए गए थे:

$('.sidebarform').fadeOut('slow').promise().done(function() { 
    $('.sidebarsuccess').fadeIn('slow'); 
}); 
+0

हालांकि दूसरे उत्तर में हरे रंग की चेकमार्क है, मुझे विश्वास है कि यह उत्तर मेरी समस्या को और अधिक विशेष रूप से हल करता है। – Lewis

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