From d6da5ebdd458f4e1775d6de2e84ed7a1bb87738c Mon Sep 17 00:00:00 2001 From: Kaine <121680374+kaine0923@users.noreply.github.com> Date: Thu, 20 Jul 2023 18:57:22 +0800 Subject: [PATCH] fix(components): [collapse-transition] fixed transition canceled bug (#13358) closed #13357 --- .../src/collapse-transition.vue | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/components/collapse-transition/src/collapse-transition.vue b/packages/components/collapse-transition/src/collapse-transition.vue index 95360bb53d..6c77fa7876 100644 --- a/packages/components/collapse-transition/src/collapse-transition.vue +++ b/packages/components/collapse-transition/src/collapse-transition.vue @@ -13,6 +13,13 @@ defineOptions({ const ns = useNamespace('collapse-transition') +const reset = (el: RendererElement) => { + el.style.maxHeight = '' + el.style.overflow = el.dataset.oldOverflow + el.style.paddingTop = el.dataset.oldPaddingTop + el.style.paddingBottom = el.dataset.oldPaddingBottom +} + const on = { beforeEnter(el: RendererElement) { if (!el.dataset) el.dataset = {} @@ -45,6 +52,10 @@ const on = { el.style.overflow = el.dataset.oldOverflow }, + enterCancelled(el: RendererElement) { + reset(el) + }, + beforeLeave(el: RendererElement) { if (!el.dataset) el.dataset = {} el.dataset.oldPaddingTop = el.style.paddingTop @@ -64,10 +75,11 @@ const on = { }, afterLeave(el: RendererElement) { - el.style.maxHeight = '' - el.style.overflow = el.dataset.oldOverflow - el.style.paddingTop = el.dataset.oldPaddingTop - el.style.paddingBottom = el.dataset.oldPaddingBottom + reset(el) + }, + + leaveCancelled(el: RendererElement) { + reset(el) }, }