# BottomPopup 底部弹出层
概述
BottomPopup 底部弹出层,从底部弹出的浮层,引导用户进行相关操作。
# 支持平台
App-vue | App-Nvue | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 | H5 | PC | 快手小程序 | 钉钉小程序 |
---|---|---|---|---|---|---|---|---|---|---|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
温馨提示
一般来说我们会通过 z-index + position 来进行层级的设置,但是 weex (Nvue)不支持 z-index 设置层级关系,默认越靠后的元素层级越高。
如果自定义内容中包含输入框类组件,小程序端底部弹出层未显示时可能无法隐藏输入框,需要自行使用
v-if
对输入框进行隐藏。
# 引入
以下介绍两种常用的引入方式。
第一种:在页面中引用、注册
import fuiBottomPopup from "@/components/firstui/fui-bottom-popup/fui-bottom-popup.vue"
export default {
components:{
fuiBottomPopup
}
}
1
2
3
4
5
6
2
3
4
5
6
第二种:easycom组件规范
传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。
First UI easycom配置请查看 快速上手。
如果不了解easycom,可先查看 官网文档 (opens new window)。
# 代码演示
部分示例演示,完整使用请参考示例程序以及文档API(以下示例写于.vue页面中)。
基础使用
通过 show
属性控制是否显示底部弹出层,@close
事件为当 maskClosable
属性值为true时点击遮罩回调事件,通过设置 show
属性为false来关闭底部弹出层。
<fui-bottom-popup :show="show" @close="closePopup">
<view class="fui-custom__wrap">
这是自定义内容区
</view>
</fui-bottom-popup>
1
2
3
4
5
2
3
4
5
/* 自定义内容区样式需自行控制 */
.fui-custom__wrap {
width: 100%;
height: 520rpx;
display: flex;
align-items: center;
justify-content: center;
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
data() {
return {
show: false
}
},
methods: {
//调用此方法显示底部弹出层
showPopup(type) {
this.show = true
},
closePopup(type) {
this.show = false
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
内容可滚动
当内容较多需要滚动时,可在组件内部使用 scroll-view
来达到内容滚动效果(注意:组件内部自定义内容样式需要自行控制)。
<fui-bottom-popup :show="show" @close="closePopup">
<view class="fui-scroll__wrap">
<view class="fui-title">测试标题二</view>
<scroll-view scroll-y class="fui-scroll__view">
<fui-list-cell v-for="(item,index) in itemList" :key="index">item{{index+1}}</fui-list-cell>
</scroll-view>
<view class="fui-icon__close" @tap="closePopup">
<fui-icon name="close" :size="48"></fui-icon>
</view>
</view>
</fui-bottom-popup>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
.fui-scroll__wrap {
padding-top: 30rpx;
position: relative;
}
.fui-title {
font-size: 30rpx;
font-weight: bold;
text-align: center;
padding-bottom: 24rpx;
}
.fui-icon__close {
position: absolute;
top: 24rpx;
left: 24rpx;
}
.fui-scroll__view {
width: 100%;
height: 600rpx;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
data() {
return {
show: false,
itemList: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
}
},
methods: {
//调用此方法显示底部弹出层
showPopup(type) {
this.show = true
},
closePopup(type) {
this.show = false
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Slots
插槽名称 | 说明 |
---|---|
default | 自定义显示内容 |
# Props
属性名 | 类型 | 说明 | 默认值 | 平台差异说明 |
---|---|---|---|---|
show | Boolean | 是否显示底部弹出层 | false | - |
background | String | 底部弹出层背景颜色 | #fff | - |
radius | Number, String | 底部弹出层左上/右上圆角值,单位rpx | 24 | Nvue端若设置圆角被内部元素覆盖,请将内部元素也设置同样圆角值 |
zIndex | Number, String | 底部弹出层z-index值 | 996 | Nvue端无效,默认越靠后的元素层级越高 |
maskClosable | Boolean | 点击遮罩 是否可关闭 | true | - |
maskBackground | String | 遮罩背景色 | rgba(0,0,0,.6) | - |
safeArea V1.5.0+ | Boolean | 是否适配底部安全区 | true | - |
# Events
事件名 | 说明 | 回调参数 |
---|---|---|
@close | 点击遮罩层(maskClosable=true)时触发 | - |