2017-10-18 2 views
0

Ich versuche gerade, mein eigenes Javascript-Bekanntmachungssystem zu bilden, das Javascript und CSS3 verwendet und seine Animationen benutzt.Javascript | transitionend nicht feuernd

Ich möchte erkennen, wenn der Elementübergang beendet ist, damit ich das Element aus dem DOM entfernen kann.

Die Animation heißt animate-out und ist eine benutzerdefinierte, die ich in CSS3 mit nur 2 Keyframes gemacht habe.

Ich habe eine Schließen-Schaltfläche auf der Nachricht, die, wenn ich darauf klicke, fügt eine Klasse von is-closed. Sobald die Animation abgeschlossen ist, möchte ich das erkennen können, was ich gerade über eine console.log('finished'); herausfinden möchte, aber es scheint, als ob das Ereignis überhaupt nicht ausgelöst wird.

Hier ist meine aktuellen Code:

const close = document.querySelector('.close'); 
const notice = document.querySelector('.notice') 

close.addEventListener('click', function() { 
    notice.classList.add('is-closed'); 
}); 

notice.addEventListener('webkitTransitionEnd', function() { 
    console.log('finished'); 
}); 

notice.addEventListener('transitionend', function() { 
    console.log('finished'); 
}); 
+0

transitionend Lesen Sie auch Brennen nicht, da Sie Übergänge nicht verwenden ... – CBroe

+0

ich auf einer anderen Stack-Überlauf Frage gelesen, dass dies, wenn eine Animation zu erkennen, verwendet wird ist auch fertig? Ist das nicht korrekt? – tallent123

+0

Ist es so schwer, zwei und zwei zusammen zu setzen, und tippen Sie "animationend" in Google und sehen, was passiert ...? – CBroe

Antwort

1

Wenn Sie Keyframes werden dann Animation Sie verwenden, und nicht Übergänge.

Das entsprechende Ereignis ist animationend

Using animation events

+0

Ich fühle mich jetzt wirklich dumm! Danke, dass du diesen Fehler aufgezeigt hast! – tallent123