From 493639a4a637ac78f909adee31833588f9fb37ad Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 15 Jun 2019 16:25:51 +0800 Subject: [PATCH] [Doc] Popup: add get-container demo (#3522) --- packages/popup/demo/index.vue | 209 ++++++++---------- packages/popup/en-US.md | 54 ++++- .../test/__snapshots__/demo.spec.js.snap | 20 +- packages/popup/zh-CN.md | 61 ++++- 4 files changed, 209 insertions(+), 135 deletions(-) diff --git a/packages/popup/demo/index.vue b/packages/popup/demo/index.vue index a278cd90f..421676c06 100644 --- a/packages/popup/demo/index.vue +++ b/packages/popup/demo/index.vue @@ -3,81 +3,86 @@ - {{ $t('button1') }} - - {{ $t('content') }} - - - - - {{ $t('button2') }} - - - - - - - - {{ $t('button4') }} + {{ $t('buttonBasic') }} {{ $t('content') }} + + + + + + {{ $t('buttonTop') }} + + + + + + {{ $t('buttonBottom') }} + + + + - {{ $t('button5') }} + {{ $t('buttonLeft') }} + + + + + + {{ $t('buttonRight') }} + + + + + + + + {{ $t('getContainer') }} - - {{ $t('button6') }} - - - {{ $t('button5') }} - - - - {{ $t('button6') }} - - - + v-model="showGetContainer" + get-container="body" + :style="{ padding: '30px 50px' }" + /> @@ -87,44 +92,33 @@ export default { i18n: { 'zh-CN': { position: '弹出位置', - button1: '弹出 Popup', - button2: '底部弹出', - button3: '弹出 Dialog', - button4: '顶部弹出', - button5: '右侧弹出', - button6: '关闭弹层', - columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'] + buttonBasic: '展示弹出层', + buttonTop: '顶部弹出', + buttonBottom: '底部弹出', + buttonLeft: '左侧弹出', + buttonRight: '右侧弹出', + getContainer: '指定挂载节点' }, 'en-US': { position: 'Position', - button1: 'Show Popup', - button2: 'From Bottom', - button3: 'Show Dialog', - button4: 'From Top', - button5: 'From Right', - button6: 'Close Popup', - columns: ['Delaware', 'Florida', 'Georqia', 'Indiana', 'Maine'] + buttonBasic: 'Show Popup', + buttonTop: 'From Top', + buttonBottom: 'From Bottom', + buttonLeft: 'From Left', + buttonRight: 'From Right', + getContainer: 'Get Container' } }, data() { return { - show1: false, - show2: false, - show3: false, - show4: false, - show5: false + showBasic: false, + showTop: false, + showBottom: false, + showLeft: false, + showRight: false, + showGetContainer: false }; - }, - - watch: { - show3(val) { - if (val) { - setTimeout(() => { - this.show3 = false; - }, 2000); - } - } } }; @@ -133,35 +127,12 @@ export default { @import '../../style/var'; .demo-popup { + .van-row { + margin-bottom: 15px; + } + .van-button { margin-left: 15px; } - - .van-popup { - box-sizing: border-box; - padding: 20px; - - &--center { - width: 60%; - } - - &--bottom { - width: 100%; - padding: 0; - } - - &--top { - width: 100%; - color: @white; - line-height: 20px; - background-color: rgba(0, 0, 0, 0.8); - } - - &--left, - &--right { - width: 100%; - height: 100%; - } - } } diff --git a/packages/popup/en-US.md b/packages/popup/en-US.md index dce2ebe39..d09e22faa 100644 --- a/packages/popup/en-US.md +++ b/packages/popup/en-US.md @@ -12,9 +12,11 @@ Vue.use(Popup); ### Basic Usage -Popup is located in the middle of the screen by default - ```html + + Show Popup + + Content ``` @@ -24,6 +26,12 @@ export default { return { show: false } + }, + + methods: { + showPopup() { + this.show = true; + } } }; ``` @@ -33,9 +41,45 @@ export default { Use `position` prop to set popup display position ```html - - Content - + +``` + +### Get Container + +Use `get-container` prop to specify mount location + +```html + + + + + + + + +``` + +```js +export default { + methods: { + getContainer() { + return document.querySelector('.my-container'); + } + } +} ``` ## API diff --git a/packages/popup/test/__snapshots__/demo.spec.js.snap b/packages/popup/test/__snapshots__/demo.spec.js.snap index 2459d4faa..23947ee24 100644 --- a/packages/popup/test/__snapshots__/demo.spec.js.snap +++ b/packages/popup/test/__snapshots__/demo.spec.js.snap @@ -3,20 +3,28 @@ exports[`renders demo correctly 1`] = `
-
- + + +
+
`; diff --git a/packages/popup/zh-CN.md b/packages/popup/zh-CN.md index 7c8518839..6683326da 100644 --- a/packages/popup/zh-CN.md +++ b/packages/popup/zh-CN.md @@ -1,5 +1,9 @@ # Popup 弹出层 +### 介绍 + +弹出层容器,用于展示弹窗、信息提示等内容,支持多个弹出层叠加展示 + ### 引入 ``` javascript @@ -12,9 +16,13 @@ Vue.use(Popup); ### 基础用法 -`Popup`默认从中间弹出 +通过`v-model`控制弹出层是否展示 ```html + + 展示弹出层 + + 内容 ``` @@ -24,18 +32,61 @@ export default { return { show: false } + }, + + methods: { + showPopup() { + this.show = true; + } } }; ``` ### 弹出位置 -通过`position`属性设置`Popup`弹出位置 +通过`position`属性设置弹出位置,默认居中弹出,可以设置为`top`、`bottom`、`left`、`right` ```html - - 内容 - + +``` + +### 指定挂载位置 + +弹出层默认挂载到组件所在位置,可以通过`get-container`属性指定挂载位置 + +```html + + + + + + + + +``` + +```js +export default { + methods: { + // 返回一个特定的 DOM 节点,作为挂载的父节点 + getContainer() { + return document.querySelector('.my-container'); + } + } +} ``` ## API