# Cube-Popup 弹出层
# 介绍
基础弹层组件,提供了功能:弹层类型、是否有背景层、显示内容以及是否居中等特性。类似于 Dialog
、Modal
、Toast
等弹层组件都是基于 Popup
进行的封装。
对于所有弹层组件来说都提供了基础的 props
属性及实例方法调用。例如 visible
属性控制是否展示和隐藏、maskClosable
遮罩是否可点击,组件实例的 show
、hide
方法来展示和隐藏等,具体见每个弹层组件的文档。
# 示例
# 基础用法
通过组件暴露的 show
方法来控制组件的展示。当然也可以通过 visible
属性来控制组件的显示和隐藏。
<template>
<view>
<cube-button bindclick="show">content-popup</cube-button>
<cube-popup
wx:ref="popup"
maskClosable="{{ true }}"
content="<i style='color:#fc9153'>Hello World</i>"
class="cube-extend-popup">
</cube-popup>
</view>
</template>
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
options: {
styleIsolation: 'shared'
},
data: {
pos: '',
trans: ''
},
methods: {
show() {
this.$refs.popup.show()
}
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 自定义位置
通过 position
属性设置弹出位置,默认居中弹出,可以设置为 top
、bottom
、left
、right
。
<template>
<view>
<cube-button bindclick="show">top/right/bottom-top-popup</cube-button>
<cube-popup
wx:ref="popup"
position="{{ pos }}"
maskClosable="{{ true }}"
maskFadeTransition="{{ true }}"
class="cube-extend-popup">
<view class="popup-slot">This is position popup</view>
</cube-popup>
</view>
</template>
<script>
import { createComponent } from '@mpxjs/core'
let index = 0
const pos = ['top', 'right', 'bottom', 'left', 'center']
createComponent({
options: {
styleIsolation: 'shared'
},
data: {
pos: ''
},
methods: {
show() {
this.pos = pos[index++]
this.$refs.popup.show()
if (index === 5) {
index = 0
}
}
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 自定义过渡效果
通过 transition
属性可以设置弹窗的动画效果,目前组件提供了 move-up
、move-right
、move-left
、move-down
、fade
等效果,具体见示例 demo。
<template>
<view>
<cube-button bindclick="show">top/right/bottom-top-transition</cube-button>
<cube-popup
wx:ref="popup"
position="{{ pos }}"
maskClosable="{{ true }}"
maskFadeTransition="{{ true }}"
transition="{{ trans }}"
class="cube-extend-popup">
<view class="popup-slot">This is transition popup</view>
</cube-popup>
</view>
</template>
<script>
import { createComponent } from '@mpxjs/core'
let index = 0
const posAndTrans = [
{
pos: 'top',
trans: 'move-down'
},
{
pos: 'right',
trans: 'move-left'
},
{
pos: 'bottom',
trans: 'move-up'
},
{
pos: 'left',
trans: 'move-right'
},
{
pos: 'center',
trans: 'fade'
}
]
createComponent({
options: {
styleIsolation: 'shared'
},
data: {
pos: '',
trans: ''
},
methods: {
show() {
const { pos, trans } = posAndTrans[index++]
this.pos = pos
this.trans = trans
this.$refs.popup.show()
if (index === 5) {
index = 0
}
}
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Props
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
zIndex | 弹出层 z-index | Number | - | 100 |
maskClosable | 遮罩是否可点击 | Boolean | - | false |
maskFadeTransition | 遮罩是否渐显 | Boolean | - | false |
visible | 遮盖层初始状态是否可见 | Boolean | - | false |
themeType | 用于生成最外层类名 如原类名为 cube-component,添加 themeType = demo 后,类名变为 cube-component cube-component-demo | String | - | - |
type | 拓展 class 属性,cube-${type} ,可用于样式覆盖和定制 | String | - | - |
mask | 是否显示遮罩 | Boolean | - | true |
content | 文本内容,*微信&web | String | - | - |
center | 是否居中显示 | Boolean | - | true |
position | 内容位置 | String | top/right/bottom/left/center | - |
transition | 过渡动画 | String | move-up/move-right/move-left/move-down/fade | - |
# Events
事件名 | 说明 | 参数 |
---|---|---|
toggle | 显示/隐藏时触发 | event.detail = { value }, 表当前状态是显示还是隐藏 |
maskClick | 点击遮罩 | - |
# Slots
插槽名 | 说明 |
---|---|
mask | 遮罩插槽 |
— (默认插槽) | 默认插槽 |
# Methods
组件实例方法 | 说明 | 参数 | 返回值 |
---|---|---|---|
show | 显示 | - | - |
hide | 隐藏 | - | - |
# CSS Variable
变量名 | 默认值 | 含义 |
---|---|---|
$popup-z-index | 100 | - |
$popup-mask-opacity | 0.4 | 遮罩透明度 |
$popup-default-animation-time | 0.3s | 默认动画时间 |