Prechádzať zdrojové kódy

fix fast click on submenu collapse bug

baiyaaaaa 8 rokov pred
rodič
commit
5753b452af

+ 0 - 2
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 {

+ 6 - 14
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;