一、问题复现
调用弹窗的事件和弹窗自定义样式:
注意,这个时候第二行代码中点击触发showBagDetail函数的盒子的父元素与uni-popup组件是同级的,也就是比uni-popup低一级
<view class="shoppingBag" v-if="showShoppingBag"><view class="shoppingBag-bagIcon" @tap="showBagDetail('bottom')">//点击触发弹出弹框的自定义函数,弹出方式为bottom<image class="shoppingBag-bagIcon-img" src="../../static/images/orderPic/shoppingBag.png"></image></view><view class="shoppingBag-price"><view class="shoppingBag-price-text">¥{{shoppingBagPrice}}</view><view class="shoppingBag-number">共{{bagNumber}}件</view></view><view class="shoppingBag-checkoutIcon"><view class="shoppingBag-checkoutIcon-text">去结算</view></view></view><!-- 点击购物车图标后底部弹出弹窗显示当前购物车内商品详情,提供结算入口begin --><uni-popup
ref="popupBag"
type="bottom"
backgroundColor="#FFFFFF"><view class="bagDetail"></view></uni-popup><!-- 点击购物车图标后底部弹出弹窗显示当前购物车内商品详情,提供结算入口end -->
uni-popup中自定义元素块的样式:
.bagDetail{width: 650rpx;height: 650rpx;
background-color: #0151C7;
border-radius: 20rpx 20rpx 00;display: flex;}
调用弹窗弹出方法的函数:
showBagDetail(type){this.type = type;// console.log(this.$refs.popupBag)this.$refs.popupBag.open(type)}
效果:
可以看到只弹出来了一个小白边,这个小白边还是uni-popup组件自带的与底部的空隙
二、解决方法
让第二行代码中点击触发showBagDetail函数的盒子与uni-popup组件同级
也就是这样:
<view class="shoppingBag" v-if="showShoppingBag"><view class="shoppingBag-bagIcon" @tap="showBagDetail('bottom')"><image class="shoppingBag-bagIcon-img" src="../../static/images/orderPic/shoppingBag.png"></image></view><view class="shoppingBag-price"><view class="shoppingBag-price-text">¥{{shoppingBagPrice}}</view><view class="shoppingBag-number">共{{bagNumber}}件</view></view><view class="shoppingBag-checkoutIcon"><view class="shoppingBag-checkoutIcon-text">去结算</view></view><!-- 点击购物车图标后底部弹出弹窗显示当前购物车内商品详情,提供结算入口begin --><uni-popup
ref="popupBag"
type="bottom"
backgroundColor="#FFFFFF"><view class="bagDetail"></view></uni-popup><!-- 点击购物车图标后底部弹出弹窗显示当前购物车内商品详情,提供结算入口end --></view>
其他的代码都和以前一样
效果:
问题解决
但是如果把uni-popup组件放到调用它的盒子里面,也就是uni-popup组件被它的父元素调用,会出现无法关闭弹窗的情况。
版权归原作者 绯村* 所有, 如有侵权,请联系我们删除。