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.

see also