2012-07-23 11 views
8

Ho diverse animazioni CSS3 collegate a un div, ma voglio solo una funzione per essere callad alla fine dell'ultima animazione.Rileva quale AnimationEnd è stato attivato tramite animationName

Ho utilizzato l'evento animationEnd in modo che possa attivare la funzione, ma come ho detto, desidero che venga eseguita solo nell'ultima animazione.

C'è un modo per rilevare con l'animazione è terminato controllando il nome dell'animazione che ha attivato l'evento animationEnd?

mi consente quindi di utilizzare un'istruzione if per individuare l'ultima animazione.

+0

Um, hai risposto alla tua stessa domanda: Controlla il nome dell'icona su tha attivato [l'evento 'animationEnd'] (http://www.w3.org/TR/css3-animations/#animation-events). –

+1

'if (event.animationName ===" myAnimation ") ...' –

+0

Argh! Non potevo sentirmi più stupido. Deve essere questo caldo estivo. Thankyou Ray – Damon

risposta

7

Il parametro è necessario quando si definisce la funzione. Ognuno di questi dovrebbe funzionare;

var $element = $('.eye').bind("webkitAnimationEnd oAnimationEnd msAnimationEnd animationend", function(event){ 
    if (event.originalEvent.animationName === "three") { 
     console.log('the event happened'); 
    } 
} 

Oppure,

var $element = $('.eye').bind("webkitAnimationEnd oAnimationEnd msAnimationEnd animationend", function(e){ 
    if (e.originalEvent.animationName === "three") { 
     console.log('the event happened'); 
    } 
} 
+0

Ho già provato il signor Clegg – Damon

+0

Non penso che sia possibile associare più condizioni del genere. Questo aiuto: http://jsfiddle.net/HeX5E/ – mattclegg

5

Non so perchè ... ma posso prendere il l'animationName solo da e.originalEvent.animationName

quindi l'opzione migliore è:

function getAnimationName(e) { 
    if(e.animationName != undefined) return e.animationName; 
    if(e.originalEvent.animationName != undefined) return e.originalEvent.animationName; 
    else return undefined; 
} 
+1

Penso che se stai usando jQuery, l'evento è tutto jQuery-ified, quindi devi accedere all'evento originale per trovare la proprietà animationName. –

Problemi correlati