2012-04-24 19 views
6

consideri un div "dMyDiv"jquery animate, ma poi tornare alla normalità

Ho notato in jQuery posso animare quindi questo:

$("#dMyDiv").animate({ 
     backgroundColor: "#aa0000" 
    }, 1000); 

porta un rosso come colore di sfondo al mio div. Ma c'è un modo per poi dopo dire 10 secondi tornare al mio normale sfondo bianco del mio div? Vedo che c'è una funzione di callback, ma non sono sicuro se è possibile avviare l'animazione, e una volta che l'animazione è fatta per tornare al mio sfondo normale (prima dell'animazione). Devo solo fare questo:

$("#dMyDiv").animate({ 
      backgroundColor: "#aa0000" 
      }, 1000, function() { 
      $(#dMyDiv").animate({ backgroundColor: "#fff" }, 1000); 
      }; 
); 

Significato dopo che il rosso si anima, appena si anima di nuovo in bianco?

risposta

0

sono stato in grado di farlo con questi ragazzi:

http://jsfiddle.net/aN7qz/

Ecco il codice:

$("#myDiv").animate({ 
      backgroundColor: "#aa0000" 
      }, 
      1000, 
      function() { 
       $("#myDiv").animate({ backgroundColor: "#fff" }, 1000); 
      } 
        ); 
+0

Pensavo volessi aspettare 10 secondi e poi rianimare? Se è così, controlla la mia risposta su come farlo. Se no e vuoi chiamarlo immediatamente dopo la prima animazione, ce l'hai! –

+0

@Scott - Beh, stavo davvero cercando di passare da un'animazione all'altra, e se ci pensate posso impostare i secondi per animare, quindi dovrebbe farlo. Ti contatterò ancora per il tuo duro lavoro dedicato :). – oJM86o

+1

oJM86o: La mia risposta è stata corretta ed è rimasta accettata per qualche tempo. Ora ti sei risposto con meno funzionalità e hai rimosso la risposta accettata per mettere la tua risposta come accettata. Di conseguenza, la mia reputazione è diminuita di 15 punti. ¬¬ – lu1s

7

Hai ragione. il terzo parametro è una funzione che viene eseguita una volta completata l'animazione.

$("#dMyDiv").stop().animate({backgroundColor:'#aa0000'},1000,function(){ 
    $(this).animate({backgroundColor:'#fff'},1000); 
}); 
+0

cosa è il punto di fermata nel begi nning? – oJM86o

+0

Se non si interrompe l'animazione ed è in esecuzione al momento in cui viene attivato nuovamente, entrerà in una sorta di coda, facendolo sembrare strano. Ad esempio, si attiva l'animazione facendo clic su un pulsante, lo si fa ripetutamente per 10 volte. Se non lo fermi, verrà eseguito molte volte fino al termine. – lu1s

+0

Ok grazie aggiungerò anche questo. – oJM86o

3

Potreste usare setTimeout:

$("#dMyDiv").stop(true, true).animate({ 

    backgroundColor: "#aa0000" 

}, 1000, function() { 

    setTimeout(function() {  

     $(#dMyDiv").animate({ 

      backgroundColor: "#fff" 

     }, 1000); 

    }, 10 * 1000); 

}); 
+0

qual è il punto di sosta all'inizio? – oJM86o

+1

Se non si interrompe l'animazione ed è in esecuzione al momento in cui viene attivato nuovamente, entrerà in una sorta di coda, facendolo sembrare strano. Ad esempio, si attiva l'animazione facendo clic su un pulsante, lo si fa ripetutamente per 10 volte. Se non lo fermi, verrà eseguito molte volte fino al termine. – lu1s

+0

lu1s è corretto e si desidera utilizzare ['.stop (true, true)'] (http://api.jquery.com/stop/) per una transizione più fluida. Controlla la documentazione del collegamento sul perché. –