2012-07-23 7 views
8

Ich habe mehrere CSS3-Animationen mit einem Div verknüpft, aber ich möchte nur eine Funktion am Ende der letzten Animation aufgerufen werden.Erkennen, welche AnimationEnd ausgelöst hat über animationName

Ich habe das AnimationEnd-Ereignis verwendet, so dass ich diese Funktion auslösen kann, aber wie gesagt, ich möchte nur, dass es auf der letzten Animation ausgeführt wird.

Gibt es eine Möglichkeit zu erkennen, ob die Animation beendet wurde, indem Sie den Namen der Animation überprüfen, die das Ereignis animationEnd ausgelöst hat?

damit ich eine if-Anweisung verwenden kann, um die letzte Animation auszumachen.

+0

Ähm, Sie haben Ihre eigene Frage beantwortet: Überprüfen Sie den Namen der animati auf das ausgelöst [das Ereignis 'animationEnd'] (http://www.w3.org/TR/css3-animations/#animation-events). –

+1

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

+0

Argh! Ich könnte mich nicht dümmer fühlen. Muss diese Sommerhitze sein. Danke Ray – Damon

Antwort

7

Der Parameter wird benötigt, wenn Sie die Funktion definieren. Beide sollten funktionieren.

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

Oder

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

Bereits versucht, dass Herr Clegg – Damon

+0

Ich glaube nicht, dass Sie mehrere Bedingungen wie diese binden können. Hilft dies: http://jsfiddle.net/HeX5E/ – mattclegg

5

Ich weiß nicht, warum ... aber ich kann die die animationName nur durch e.originalEvent.animationName

so die beste Option fangen ist:

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

Ich denke, wenn Sie jQuery verwenden, dann ist das Ereignis alle jQuery-ified, also müssen Sie auf das ursprüngliche Ereignis zugreifen, um die Eigenschaft animationName zu finden. –

Verwandte Themen