Rappel sur la transition CSS
Est-il possible de recevoir une notification (comme callback) lorsqu'une transition CSS a été complété?
Vous devez vous connecter pour publier un commentaire.
Est-il possible de recevoir une notification (comme callback) lorsqu'une transition CSS a été complété?
Vous devez vous connecter pour publier un commentaire.
Je sais que Safari met en œuvre un webkitTransitionEnd de rappel que vous pouvez joindre directement à l'élément avec la transition.
Leur exemple (reformaté à lignes multiples):
this
élément à l'intérieur de la fonction de rappel. Mais c'est un paramètre obligatoire, donc dans ce cas c'est juste de satisfaire à l'exigence.useCaptureMode
. Lorsqu'un événement se produit, il y a deux phases - la première phase est le mode de capture, la seconde est la bulle de la mode. En mode capture, l'événement descend de l'élément de corps de l'élément spécifié. Il entre ensuite dans la bulle de mode, où il fait l'inverse. Cette finale faux param indique que vous voulez l'écouteur d'événement à se produire dans la bulle de la mode. Une utilisation de cette est de fixer des gestionnaires d'événement juste avant qu'ils sont nécessaires à bulles de mode. =) 37signals.com/svn/posts/...Oui, si de telles choses sont pris en charge par le navigateur, puis un événement est déclenché lorsque la transition est terminée. L'événement, cependant, diffère entre les navigateurs:
webkitTransitionEnd
transitionend
msTransitionEnd
oTransitionEnd
Cependant, vous devez être conscient que
webkitTransitionEnd
n'est pas toujours le feu! Cela m'a pris un certain nombre de fois, et semble se produire si l'animation n'aurait aucun effet sur l'élément. Pour contourner ce problème, il est logique d'utiliser un délai de feu le gestionnaire d'événement dans le cas où il n'a pas été déclenchée comme prévu. Un billet de blog à propos de ce problème est disponible ici: http://www.cuppadev.co.uk/the-trouble-with-css-transitions/ <-- 500 Erreur Interne du ServeurAvec cela à l'esprit, j'ai tendance à utiliser cet événement dans un petit morceau de code qui ressemble un peu à ceci:
Note: pour obtenir les événements de transition de fin de nom, vous pouvez utiliser la méthode présenté comme étant la réponse:
Comment normaliser CSS3 Transition fonctions de l'ensemble des navigateurs?.
Remarque: cette question est également liée à:
- CSS3 transition événements
transitionEndedHandler
danstransitionEnded
(ou de modifiertransitionEnded
partransitionEndedHandler
dansaddEventListener
etremoveEventListener
et appeltransitionEnded
danstransitionEndedHandler
)transitionEnded
quand je voulais diretransitionEndedHandler
.Je suis en utilisant le code suivant, est beaucoup plus simple que d'essayer de détecter des cas un navigateur utilise.
Alternativement, si vous utiliser bootstrap, alors vous pouvez simplement faire
C'est parce qu'ils incluent les éléments suivants dans bootstrap.js
La jQuery.transit plugin, un plugin pour les transformations CSS3 et les transitions, pouvez appeler votre CSS animations à partir d'un script et vous donner un rappel.
Cela peut facilement être atteint avec la
transitionend
Événement voir la documentation iciUn exemple simple:
JS:
CSS:
HTML: