【Vant Weapp】van-popup 弹出层

目录

弹窗底部滚动

catchtouchmove

弹窗滚动同时底部滚动

scroll-view

页面高度100vh

弹窗中图标 

打开前关闭键盘


弹窗底部滚动

白色区域不滚动的话,就可以使用catchtouchmove。

catchtouchmove

<view wx:for="{{100}}" wx:key="item"> {{item}} </view>

<van-popup show="{{ true }}" custom-style="height: 20%;width: 80%" catchtouchmove="{{ catchMove }}">内容</van-popup>
data:{
    catchMove: true
}

弹窗滚动同时底部滚动

期待效果

 

白色区域滚动的话,使用catchtouchmove就不对了,白色区域会被固定住。然后就可以用下面的方法。

scroll-view

<scroll-view class="page" scroll-y>
  <view wx:for="{{100}}" wx:key="item" bindtap="handOpen"> {{item}} </view>
</scroll-view>

<van-popup show="{{ show }}" custom-style="height: 20%;width: 80%" >
  <view wx:for="{{100}}" wx:key="item" bindtap="handClose"> 内容 </view>
</van-popup>
.page {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow-y: auto;
}
data:{
    isScroll: false,
    show: false
}
handOpen () { 
  this.setData({
    show: true,
    isScroll: false
  })
},

handClose () { 
  this.setData({
    show: false,
    isScroll: true
  })
},

页面高度100vh

<view class="{{show ? 'page-overflow-hidden' : ''}}">
  <view wx:for="{{100}}" wx:key="item" bindtap="handOpen"> {{item}} </view>
</view>

<van-popup show="{{ show }}" custom-style="height: 20%;width: 80%" >
  <view wx:for="{{100}}" wx:key="item" bindtap="handClose"> 内容 </view>
</van-popup>
.page-overflow-hidden {
  height: 100vh;
  overflow: hidden;
}
data:{
    show: false
}
​
handOpen () { 
  this.setData({
    show: true,
  })
},

handClose () { 
  this.setData({
    show: false,
  })
},

​

弹窗中图标 

期待效果:

  

 白色区域有overflow-y:auto。图片定位右上角不显示。

<van-popup class="dialog" show="{{ show }}" >
  <view  class="pop">
    <van-icon class="close" name="close" bindtap="close"/>
    <image class="img" src="xxxx.png" lazy-load="true"></image>
  </view>
</van-popup>
.pop {
  position: relative;
  padding: 64rpx 75rpx;
}

.close {
  position: absolute;
  top: -58rpx;
  right: -46rpx;
  z-index: 999;
}

.img {
  height: 300rpx;
  width: 300rpx;
}

解决方法:

.dialog .van-popup {
  overflow-y: visible;
}

打开前关闭键盘

<van-popup 
    class="dialog" 
    show="{{ show }}" 
    bind:before-enter="hideKeyboard"
>
</van-popup>
hideKeyboard() {
  wx.hideKeyboard({
    complete: res => {
      console.log('hideKeyboard', res)
    }
  })
},

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
问题: vant2 van-popup不能弹出 回答: 如果vant2的van-popup无法弹出,可能是由于以下几个原因导致的。首先,你需要确保在打开前关闭键盘,可以使用以下代码实现: ```html <van-popup class="dialog" show="{{ show }}" bind:before-enter="hideKeyboard"></van-popup> ``` ```javascript hideKeyboard() { wx.hideKeyboard({ complete: res => { console.log('hideKeyboard', res) } }) } ``` 其次,如果白色区域有overflow-y:auto,图片定位右上角不显示,你可以尝试以下代码: ```html <van-popup class="dialog" show="{{ show }}"> <view class="pop"> <van-icon class="close" name="close" bindtap="close"/> <image class="img" src="xxxx.png" lazy-load="true"></image> </view> </van-popup> ``` ```css .pop { position: relative; padding: 64rpx 75rpx; } .close { position: absolute; top: -58rpx; right: -46rpx; z-index: 999; } .img { height: 300rpx; width: 300rpx; } ``` 最后,如果你想要实现弹窗滚动同时底部滚动,可以使用以下代码: ```html <view wx:for="{{100}}" wx:key="item">{{item}}</view> <van-popup show="{{ true }}" custom-style="height: 20%;width: 80%" catchtouchmove="{{ catchMove }}">内容</van-popup> ``` ```javascript data:{ catchMove: true } ``` 希望以上解决方法能够帮助到你解决vant2 van-popup无法弹出的问题。 #### 引用[.reference_title] - *1* *2* *3* [【Vant Weappvan-popup 弹出](https://blog.csdn.net/wuli_youhouli/article/details/127763074)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宾果的救星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值