diff --git a/.changeset/tiny-loops-wonder.md b/.changeset/tiny-loops-wonder.md new file mode 100644 index 000000000000..49ac92947c61 --- /dev/null +++ b/.changeset/tiny-loops-wonder.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: ensure each block animations don't mess with transitions diff --git a/packages/svelte/src/internal/client/dom/blocks/each.js b/packages/svelte/src/internal/client/dom/blocks/each.js index 320c0346902c..6e538f8f2177 100644 --- a/packages/svelte/src/internal/client/dom/blocks/each.js +++ b/packages/svelte/src/internal/client/dom/blocks/each.js @@ -394,8 +394,12 @@ function reconcile(state, array, anchor, flags, get_key) { key = get_key(value, i); item = /** @type {EachItem} */ (items.get(key)); - item.a?.measure(); - (to_animate ??= new Set()).add(item); + // offscreen == coming in now, no animation in that case, + // else this would happen https://github.com/sveltejs/svelte/issues/17181 + if (item.o) { + item.a?.measure(); + (to_animate ??= new Set()).add(item); + } } }