diff --git a/packages/svelte/src/internal/client/transitions.js b/packages/svelte/src/internal/client/transitions.js index fabf343a8d..95d8ad0ff3 100644 --- a/packages/svelte/src/internal/client/transitions.js +++ b/packages/svelte/src/internal/client/transitions.js @@ -439,19 +439,21 @@ function create_transition(dom, init, direction, effect) { // If we are working with CSS animations, then before we call reverse, we also need to ensure // that we reverse the easing logic. To do this we need to re-create the keyframes so they're // in reverse with easing properly reversed too. - if (payload !== null && payload.css !== undefined) { + if ( + payload !== null && + payload.css !== undefined && + /** @type {Animation} */ (animation).effect != null + ) { const duration = payload.duration ?? 300; const css_fn = payload.css; const easing_fn = payload.easing || linear; const keyframes = create_keyframes(easing_fn, css_fn, duration, direction, true); - if (/** @type {Animation} */ (animation).effect != null) { - // If we have an existing animation, we need to pause it and create a new animation - // with the new frames. - animation.pause(); - create_animation(); - // @ts-ignore - animation.effect.setKeyframes(keyframes); - } + // If we have an existing animation, we need to pause it and create a new animation + // with the new frames. + animation.pause(); + create_animation(); + // @ts-ignore + animation.effect.setKeyframes(keyframes); } /** @type {Animation | TickAnimation} */ (animation).reverse(); } else {