From 1be5ddfe878c8bfddaa2c50e82105b247f50b9ba Mon Sep 17 00:00:00 2001 From: Tobias Messner Date: Thu, 25 Sep 2025 02:42:52 +0200 Subject: [PATCH] fix(transition-group): run `forceReflow` on the correct document (fix #13849) (#13853) close #13849 --- packages/runtime-dom/src/components/Transition.ts | 9 +++++---- packages/runtime-dom/src/components/TransitionGroup.ts | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/runtime-dom/src/components/Transition.ts b/packages/runtime-dom/src/components/Transition.ts index ebd16a12a3..9ee9a8e082 100644 --- a/packages/runtime-dom/src/components/Transition.ts +++ b/packages/runtime-dom/src/components/Transition.ts @@ -260,11 +260,11 @@ export function resolveTransitionProps( // the css will not get the final state (#10677) if (!el._enterCancelled) { // force reflow so *-leave-from classes immediately take effect (#2593) - forceReflow() + forceReflow(el) addTransitionClass(el, leaveActiveClass) } else { addTransitionClass(el, leaveActiveClass) - forceReflow() + forceReflow(el) } nextFrame(() => { if (!el._isLeaving) { @@ -476,6 +476,7 @@ function toMs(s: string): number { } // synchronously force layout to put elements into a certain state -export function forceReflow(): number { - return document.body.offsetHeight +export function forceReflow(el?: Node): number { + const targetDocument = el ? el.ownerDocument! : document + return targetDocument.body.offsetHeight } diff --git a/packages/runtime-dom/src/components/TransitionGroup.ts b/packages/runtime-dom/src/components/TransitionGroup.ts index 33a1533c72..3ba59f068c 100644 --- a/packages/runtime-dom/src/components/TransitionGroup.ts +++ b/packages/runtime-dom/src/components/TransitionGroup.ts @@ -92,7 +92,7 @@ const TransitionGroupImpl: ComponentOptions = /*@__PURE__*/ decorate({ const movedChildren = prevChildren.filter(applyTranslation) // force reflow to put everything in position - forceReflow() + forceReflow(instance.vnode.el as Node) movedChildren.forEach(c => { const el = c.el as ElementWithTransition -- 2.47.3