# Popup 弹出层
# 介绍
弹出层容器组件,用于弹出框形式展示内容等场景。
# 使用指南
# 一般用法

<button bindtap="_showNormal">点击打开popup</button>
<tms-popup show="{{showNormal}}">
<view class="content"/>
</tms-popup>
Component({
data: {
showNormal: false,
},
methods: {
_showNormal() {
this.setData({
showNormal: true,
});
},
}
})
# 打开位置
从顶部弹出
<button bindtap="_showFromTop">打开</button>
<tms-popup show="{{showFromTop}}" position="top">
<view class="content"/>
</tms-popup>
# 受控模式
点击遮罩及关闭图标不会自动收缩
<button bindtap="_showControlMode">打开</button>
<tms-popup show="{{showControlMode}}" bind:on-click-overlay="asyncHide" control>
<view class="content"/>
</tms-popup>
Component({
data: {
showControlMode: false,
},
methods: {
_showControlMode() {
this.setData({
showControlMode: true,
});
},
asyncHide() {
// 模拟异步操作
setTimeout(() => {
this.setData({
showControlMode: false,
});
}, 1800);
},
}
})
# API
| 属性 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| show | 控制弹出/收缩组件 | boolean | false | |
| round | 显示圆角模式 | boolean | true | |
| position | 弹出位置,上右下左中(top,right,bottom,left,center) | string | bottom | |
| custom-style | 自定义弹框容器元素样式 | string | ||
| close-icon | 自定义关闭按钮,为空则使用默认 | string | ||
| close-icon-style | 自定义关闭按钮样式 | string | ||
| mask-style | 自定义灰色遮罩层元素样式 | string | ||
| duration | 弹出动画执行时间,单位毫秒 | string | 500 | |
| z-index | 自定义弹框z-index数值 | number | 9999 | |
| bottom-safe-area | 为iphoneX等部分机型留出底部空间 | boolean | false | |
| top-safe-area | 为iphoneX等部分机型留出头部刘海空间 | boolean | false | |
| lock-scroll | 阻止下方元素响应touchmove,防止滚动穿透。 | boolean | true | |
| hide-cover | 是否隐藏灰色遮罩层 | boolean | false | |
| show-close-icon | 是否显示关闭图标 | boolean | true | |
| tap-mask-close | 点击蒙层自动收缩,受控模式无效。 | boolean | true | |
| control | 使用受控模式,点击遮罩及关闭按钮不会自动收缩 | boolean | false |
# EVENTS
| 属性 | 说明 | 类型 |
|---|---|---|
| bind:on-click-close-icon | 点击关闭图标事件 | (event) => {} |
| bind:on-click-overlay | 点击灰色遮罩层事件 | (event) => {} |
| bind:closed | 弹窗完全收缩后的事件,受控模式下无效 | (event) => {} |
# CSS变量
// 遮罩层颜色
--popup-cover-background: rgba(0, 0, 0, .5);
// 面板背景色
--popup-background: #fff;
// z-index
--popup-cover-z-index: 9999;
// 关闭图标大小
--popup-close-icon-size: 35rpx;
# 外部类 externalClasses
| 属性 | 说明 |
|---|---|
| container-class | 作用于面板容器元素 |
