From b5238ed753fde6f33757ddecd25b95a575d5c388 Mon Sep 17 00:00:00 2001 From: rex Date: Wed, 20 Mar 2019 20:46:15 +0800 Subject: [PATCH] [bugfix] Transition: behavior error when set duration zero --- example/pages/popup/index.wxml | 1 + packages/mixins/transition.ts | 11 +++++++++-- packages/popup/index.less | 11 ----------- packages/popup/index.ts | 4 ++++ packages/popup/index.wxml | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/example/pages/popup/index.wxml b/example/pages/popup/index.wxml index e5fc308a..25b1568c 100644 --- a/example/pages/popup/index.wxml +++ b/example/pages/popup/index.wxml @@ -3,6 +3,7 @@ diff --git a/packages/mixins/transition.ts b/packages/mixins/transition.ts index a5260efe..ba908894 100644 --- a/packages/mixins/transition.ts +++ b/packages/mixins/transition.ts @@ -60,6 +60,7 @@ export const transition = function(showDefaultValue: boolean) { show() { const { classNames, duration } = this.data; + const currentDuration = isObj(duration) ? duration.leave : duration; Promise.resolve() .then(nextTick) @@ -68,7 +69,7 @@ export const transition = function(showDefaultValue: boolean) { inited: true, display: true, classes: classNames.enter, - currentDuration: isObj(duration) ? duration.enter : duration + currentDuration }) ) .then(nextTick) @@ -81,13 +82,19 @@ export const transition = function(showDefaultValue: boolean) { leave() { const { classNames, duration } = this.data; + const currentDuration = isObj(duration) ? duration.leave : duration; + + if (+currentDuration === 0) { + this.onTransitionEnd(); + return; + } Promise.resolve() .then(nextTick) .then(() => this.set({ classes: classNames.leave, - currentDuration: isObj(duration) ? duration.leave : duration + currentDuration }) ) .then(nextTick) diff --git a/packages/popup/index.less b/packages/popup/index.less index c7a641f5..8eb1343e 100644 --- a/packages/popup/index.less +++ b/packages/popup/index.less @@ -116,14 +116,3 @@ .van-right-leave-to { transform: translate3d(100%, -50%, 0); } - -.van-none-enter-active, -.van-none-leave-active { - transition-duration: 1ms !important; - transition-property: opacity; -} - -.van-none-enter, -.van-none-leave-to { - opacity: 0.999; -} diff --git a/packages/popup/index.ts b/packages/popup/index.ts index 4d12fad2..da23e5f6 100644 --- a/packages/popup/index.ts +++ b/packages/popup/index.ts @@ -56,6 +56,10 @@ VantComponent({ observeClass() { const { transition, position } = this.data; this.updateClasses(transition || position); + + if (transition === 'none') { + this.set({ duration: 0 }); + } } } }); diff --git a/packages/popup/index.wxml b/packages/popup/index.wxml index 5ef216c3..6d38e13b 100644 --- a/packages/popup/index.wxml +++ b/packages/popup/index.wxml @@ -6,7 +6,7 @@ show="{{ show }}" z-index="{{ zIndex }}" custom-style="{{ overlayStyle }}" - duration="{{ transition === 'none' ? 1 : duration }}" + duration="{{ duration }}" bind:click="onClickOverlay" />