This example demonstrates how to interrupt chained transitions. Normally when a chained transition ends, it immediately schedules the next transition. However, blindly scheduling the next chained transition can prevent a different, non-chained transition from taking over — such as the “Stop The Music” button here.
To ensure that a chained transition does not interrupt a different transition, you can check the number of scheduled transitions on the current element: this.__transition__.count
. Normally during a chained transition, only one transition will be scheduled; if two transitions are scheduled, then the chained transition should stop.
D3 uses this check internally to implement transition.remove.
https://d3js.org/d3.v3.min.js