diff --git a/examples/docs/popover.md b/examples/docs/popover.md index b9973a8d4..788d9a923 100644 --- a/examples/docs/popover.md +++ b/examples/docs/popover.md @@ -117,7 +117,7 @@
hover 激活 click 激活 - +
```html @@ -204,7 +204,7 @@ ```html @@ -224,7 +224,7 @@
@@ -240,7 +240,7 @@ ```html diff --git a/examples/docs/tooltip.md b/examples/docs/tooltip.md index f71433ecc..0f4ec16f9 100644 --- a/examples/docs/tooltip.md +++ b/examples/docs/tooltip.md @@ -30,73 +30,49 @@ } - - - - -
- + 上左 - + 上边 - + 上右
- + 左上 - + 左边 - + 左下
- + 右上 - + 右边 - + 右下
- + 下左 - + 下边 - + 下右
diff --git a/package.json b/package.json index 14d06cf2c..0b013af42 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ ], "scripts": { "dev": "node bin/build-entry.js && cooking watch -c scripts/cooking.demo.js", - "dist": "rm -rf lib && cooking build -p && cooking build -c scripts/cooking.component.js -p", + "dist": "rm -rf lib && cooking build -c scripts/cooking.conf.js -p && cooking build -c scripts/cooking.component.js -p", "deploy": "cooking build -c scripts/cooking.demo.js -p", "gh-docs": "cooking build -c scripts/cooking.demo.js -p && gh-pages -d examples/element-ui --remote origin", "prepublish": "make dist" diff --git a/packages/popover/src/main.vue b/packages/popover/src/main.vue index 1334b57d1..949b3ec73 100644 --- a/packages/popover/src/main.vue +++ b/packages/popover/src/main.vue @@ -1,13 +1,14 @@ diff --git a/packages/theme-default/src/common/transition.css b/packages/theme-default/src/common/transition.css index 09e0f4cc8..4c4f65eca 100644 --- a/packages/theme-default/src/common/transition.css +++ b/packages/theme-default/src/common/transition.css @@ -6,11 +6,16 @@ transition: var(--fade-transition); } -.fade-in-linear-transition { +.fade-in-linear-enter-active { opacity: 1; transition: var(--fade-linear-transition); } +.fade-in-linear-leave-active { + opacity: 0; + transition: var(--fade-linear-transition); +} + .fade-in-enter, .fade-in-leave, .fade-in-linear-enter, diff --git a/packages/tooltip/src/main.vue b/packages/tooltip/src/main.vue index 6d71b3521..af9e1bcc9 100644 --- a/packages/tooltip/src/main.vue +++ b/packages/tooltip/src/main.vue @@ -1,20 +1,21 @@ diff --git a/src/utils/vue-popper.js b/src/utils/vue-popper.js index 984229d92..57f763876 100644 --- a/src/utils/vue-popper.js +++ b/src/utils/vue-popper.js @@ -34,9 +34,21 @@ export default { } }, + data() { + return { + showPopper: false + }; + }, + watch: { - 'visible'(val) { - if (this.popperDestroying) return; + visible: { + immediate: true, + handler(val) { + this.showPopper = val; + } + }, + + showPopper(val) { val ? this.updatePopper() : this.destroyPopper(); } }, @@ -47,32 +59,32 @@ export default { return; } - this.popper = this.popper || this.$refs.popper; - this.reference = this.reference || this.$refs.reference; - - if (!this.popper || !this.reference) { - return; - } + const options = this.options; + const popper = this.popper || this.$refs.popper; + const reference = this.reference || this.$refs.reference; + if (!popper || !reference) return; if (this.visibleArrow) { - this.appendArrow(this.popper); + this.appendArrow(popper); } if (this.popperJS && this.popperJS.hasOwnProperty('destroy')) { this.popperJS.destroy(); } - this.$set('options.placement', this.placement); - this.$set('options.offset', this.offset); + options.placement = this.placement; + options.offset = this.offset; - this.popperJS = new PopperJS( - this.reference, - this.popper, - this.options - ); - this.popperJS.onCreate(popper => { - this.resetTransformOrigin(popper); - this.$emit('created', this); + this.$nextTick(() => { + this.popperJS = new PopperJS( + reference, + popper, + options + ); + this.popperJS.onCreate(popper => { + this.resetTransformOrigin(popper); + this.$emit('created', this); + }); }); }, @@ -85,7 +97,7 @@ export default { }, doDestroy() { - if (this.visible) return; + if (this.showPopper) return; this.popperJS._popper.removeEventListener('transitionend', this.doDestroy); this.popperJS.destroy();