<view class="zan-dialog {{ showDialog ? 'zan-dialog--show' : '' }}"> <!-- 如果想点击弹窗外不隐藏,取消bindtap点击事件即可 --> <view class="zan-dialog__mask" bindtap="toggleDialog" /> <view class="zan-dialog__container"> <view style='padding:100rpx;'>此处是填充的布局代码</view> </view></view>
.zan-dialog__mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10; background: rgba(0, 0, 0, 0); /*设置阴影半透明背景如: background: rgba(0, 0, 0, 0.4);*/ display: none; } .zan-dialog__container { position: fixed; bottom: 400rpx; width: 650rpx; /*弹窗布局宽*/ height: 350rpx; /*弹窗布局高,与下面弹出距离transform有关*/ margin-left: 50rpx; background: #f8f8f8; transform: translateY(300%); /*弹框弹出距离,与弹框布局高度有关,如300%表示弹起距离为3倍弹窗高度 */ transition: all 0.4s ease; z-index: 12; border-radius: 20rpx; box-shadow: 0px 3px 3px 2px gainsboro; /*弹框的悬浮阴影效果,如不需要可注释该行*/ } .zan-dialog--show .zan-dialog__container { transform: translateY(0); } .zan-dialog--show .zan-dialog__mask { display: block; }
Page({ data: { showDialog: false }, /** * 控制 pop 的打开关闭 * 该方法作用有2: * 1:点击弹窗以外的位置可消失弹窗 * 2:用到弹出或者关闭弹窗的业务逻辑时都可调用 */ toggleDialog() { this.setData({ showDialog: !this.data.showDialog }); },