2012-04-22 12 views
6

Sto cercando di sfumare più div contemporaneamente e svanire in un div dopo il completamento. Ecco il codice:jQuery FadeOut molte div in una volta

if($(this).attr("id")==="benefits-button"){ 

    $("#solar-about, #home-page, #process-page, #financing-page, #vendors-page, #consump-info-page, #smart-page, #wind-page, #about-page").fadeOut(750, function() { 
     $("#benefits-page").fadeIn(750); 
    }); 
    } 

Quando ci sono più div nel selettore, la fadeOut e fadeIn succedere allo stesso tempo.

Domanda: Come ottengo la dissolvenza dopo la dissolvenza?

Grazie

+6

So..what è la domanda? – Marc

+5

perché non usare 'class' invece di troppi' id's? – undefined

+0

@Raminson il tuo commento è in realtà la risposta ™. –

risposta

14
$("#benefits-page").fadeIn(750); 

sta lavorando subito perché è di iniziare a lavorare quando il primo elemento (# solare circa nel tuo esempio) animazione fadeOut è completato.

Se si vuole aspettare fino a quando tutte le animazioni sono completate di quanto si può usare .promise(), in questo modo:

$("#solar-about, #home-page, #process-page, #financing-page, #vendors-page, #consump-info-page, #smart-page, #wind-page, #about-page").fadeOut(750).promise().done(function() { 
    $("#benefits-page").fadeIn(750); 
}); 

DEMO

+4

grazie! Prometto, "promise()" fa il trucco! – Vinny