Est-il possible d'obtenir une notification (comme un rappel) lorsqu'une transition CSS est terminée?
javascript
css
css-transitions
Pompair
la source
la source
Réponses:
Je sais que Safari implémente un rappel webkitTransitionEnd que vous pouvez attacher directement à l'élément avec la transition.
Leur exemple (reformaté en plusieurs lignes):
la source
this
élément à l'intérieur du rappel. Mais c'est un paramètre obligatoire, donc dans ce cas, il remplit simplement l'exigence.useCaptureMode
. Lorsqu'un événement se produit, il y a deux phases - la première phase est le mode capture, la seconde est le mode bulle. En mode capture, l'événement descend de l'élément body vers l'élément spécifié. Il entre alors en mode bulle, où il fait l'inverse. Ce dernier paramètre faux spécifie que vous souhaitez que l'écouteur d'événements se produise en mode bulle. Une utilisation de ceci est d'attacher des gestionnaires d'événements juste avant qu'ils ne soient nécessaires en mode bulle. =) 37signals.com/svn/posts/…Oui, si de telles choses sont prises en charge par le navigateur, un événement est déclenché une fois la transition terminée. L'événement réel diffère cependant d'un navigateur à l'autre:
webkitTransitionEnd
transitionend
msTransitionEnd
oTransitionEnd
Cependant, vous devez être conscient que
webkitTransitionEnd
cela ne se déclenche pas toujours! Cela m'a surpris à plusieurs reprises et semble se produire si l'animation n'avait aucun effet sur l'élément. Pour contourner ce problème, il est logique d'utiliser un délai d'expiration pour déclencher le gestionnaire d'événements dans le cas où il n'a pas été déclenché comme prévu. Un article de blog sur ce problème est disponible ici: http://www.cuppadev.co.uk/the-trouble-with-css-transitions/ <- 500 Internal Server ErrorDans cet esprit, j'ai tendance à utiliser cet événement dans un morceau de code qui ressemble un peu à ceci:
Remarque: pour obtenir le nom de fin de l'événement de transition, vous pouvez utiliser la méthode publiée comme réponse dans: Comment normaliser les fonctions de transition CSS3 dans les navigateurs? .
Remarque: cette question est également liée: - aux événements de transition CSS3
la source
transitionEndedHandler
àtransitionEnded
(ou changementtransitionEnded
partransitionEndedHandler
dansaddEventListener
etremoveEventListener
et appeltransitionEnded
entransitionEndedHandler
)transitionEnded
quand je voulais diretransitionEndedHandler
.J'utilise le code suivant, c'est beaucoup plus simple que d'essayer de détecter l'événement final spécifique utilisé par un navigateur.
Alternativement, si vous utilisez bootstrap, vous pouvez simplement faire
C'est parce qu'ils incluent les éléments suivants dans bootstrap.js
la source
Le plugin jQuery.transit , un plugin pour les transformations et transitions CSS3, peut appeler vos animations CSS à partir d'un script et vous donner un rappel.
la source
Ceci peut facilement être réalisé avec l'
transitionend
événement voir la documentation ici Un exemple simple:la source