From 5753b452afc5558a7165429c0ed2d9c836fed3f6 Mon Sep 17 00:00:00 2001 From: baiyaaaaa Date: Thu, 12 Jan 2017 01:14:38 +0800 Subject: [PATCH] fix fast click on submenu collapse bug --- packages/theme-default/src/tree.css | 2 -- src/transitions/collapse-transition.js | 20 ++++++-------------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/packages/theme-default/src/tree.css b/packages/theme-default/src/tree.css index c83566b4b..c3a0777c8 100644 --- a/packages/theme-default/src/tree.css +++ b/packages/theme-default/src/tree.css @@ -90,8 +90,6 @@ & > .el-tree-node__children { overflow: hidden; background-color: transparent; - /** padding-left: 16px; */ - display: none; } &.is-expanded > .el-tree-node__children { diff --git a/src/transitions/collapse-transition.js b/src/transitions/collapse-transition.js index 5fa1fc4fb..27359b19a 100644 --- a/src/transitions/collapse-transition.js +++ b/src/transitions/collapse-transition.js @@ -1,9 +1,10 @@ class Transition { beforeEnter(el) { if (!el.dataset) el.dataset = {}; + el.dataset.oldPaddingTop = el.style.paddingTop; el.dataset.oldPaddingBottom = el.style.paddingBottom; - el.dataset.oldDisplay = el.style.display; + el.style.height = '0'; el.style.paddingTop = 0; el.style.paddingBottom = 0; @@ -11,8 +12,6 @@ class Transition { enter(el) { el.dataset.oldOverflow = el.style.overflow; - - el.style.display = 'block'; if (el.scrollHeight !== 0) { el.style.height = el.scrollHeight + 'px'; el.style.paddingTop = el.dataset.oldPaddingTop; @@ -27,7 +26,6 @@ class Transition { } afterEnter(el) { - el.style.display = ''; el.style.height = ''; el.style.overflow = el.dataset.oldOverflow; } @@ -38,25 +36,19 @@ class Transition { el.dataset.oldPaddingBottom = el.style.paddingBottom; el.dataset.oldOverflow = el.style.overflow; - el.style.display = 'block'; - if (el.scrollHeight !== 0) { - el.style.height = el.scrollHeight + 'px'; - } + el.style.height = el.scrollHeight + 'px'; el.style.overflow = 'hidden'; } leave(el) { if (el.scrollHeight !== 0) { - setTimeout(() => { - el.style.height = 0; - el.style.paddingTop = 0; - el.style.paddingBottom = 0; - }); + el.style.height = 0; + el.style.paddingTop = 0; + el.style.paddingBottom = 0; } } afterLeave(el) { - el.style.display = el.dataset.oldDisplay; el.style.height = ''; el.style.overflow = el.dataset.oldOverflow; el.style.paddingTop = el.dataset.oldPaddingTop;