Vous voulez écouter de la "fin" de l'événement de la transition.
d3.select("#myid").transition().style("opacity","0").each("end", myCallback);
-
Cette démo utilise la "fin" de l'événement à la chaîne un grand nombre de transitions dans l'ordre.
- Le donut exemple livré avec D3 utilise également ce pour enchaîner plusieurs transitions.
- Voici mon propre démo qui change le style des éléments au début et à la fin de la transition.
À partir de la documentation pour transition.each([type],listener)
:
Si le type est spécifié, ajoute un écouteur d'événements de transition, le soutien à la fois de "début" et "fin" des événements. L'auditeur sera invoquée pour chaque élément individuel dans la transition, même si la transition a un retard constant et la durée. Le début de l'événement peut être utilisé pour déclencher un changement instantané que chaque élément commence à la transition. La fin de l'événement peut être utilisé pour initier le multi-transitions de scène en sélectionnant l'élément courant, en this
, et d'en déduire une nouvelle transition. Toutes les transitions créé lors de l'événement de fin de héritera de la transition actuelle de l'ID, et donc ne peut pas remplacer une nouvelle transition qui était prévu auparavant.
Voir ce fil de discussion sur le sujet pour plus de détails.
Enfin, notez que si vous voulez juste de supprimer les éléments après qu'ils ont disparu (après la transition a fini de), vous pouvez utiliser transition.remove()
.