2012-07-23 17 views
8

Tengo varias animaciones CSS3 vinculadas a un div, pero solo quiero que una función se invoque al final de la última animación.Detectar qué AnimationEnd se ha activado a través de animationName

He utilizado el evento animationEnd para que pueda activar dicha función, pero como dije, solo quiero que se ejecute en la última animación.

¿Hay alguna manera de detectar con la animación que haya finalizado marcando el nombre de la animación que activó el evento animationEnd?

lo que me permite utilizar una instrucción if para seleccionar la última animación.

+0

Um, usted respondió su propia pregunta: Compruebe el nombre de los animati en tha provocó [el evento 'animationEnd'] (http://www.w3.org/TR/css3-animations/#animation-events). –

+1

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

+0

Argh! No podría sentirme más estúpido. Debe ser este calor de verano. Gracias Ray – Damon

Respuesta

7

El parámetro es obligatorio cuando define la función. Cualquiera de estos debería funcionar;

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

O

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

Ya lo intenté con Mr Clegg – Damon

+0

No creo que pueda vincular varias condiciones como esa. ¿Esto ayuda: http://jsfiddle.net/HeX5E/ – mattclegg

5

No sé por qué ... pero puedo coger el del animationName solamente por e.originalEvent.animationName

por lo que la mejor opción es:

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

Creo que si está utilizando jQuery, entonces el evento está jQuery-ified, por lo que tiene que acceder al evento original para encontrar la propiedad animationName. –

Cuestiones relacionadas