demo · v139
Duration Swap Mid-Transition
Per the CSS Transitions spec, changing only transition-duration on an element with an in-flight transition should not cancel it. Chrome 139 finally agrees. Start the move, then change the duration slider mid-flight — the ball keeps gliding with its original timing.
stage
2000ms
transitionrun = start of any transition
transitionend = clean finish
transitioncancel = browser killed it (the v138 bug)
transition events fired by the ball
the code
.ball { transition: left 2000ms ease; }
// pre-v139: this used to fire transitioncancel.
ball.style.transitionDuration = "500ms";
// post-v139: the in-flight transition keeps its original duration.
// only changing the property being animated cancels it.