【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)
    }
  })
},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宾果的救星

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

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

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

打赏作者

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

抵扣说明:

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

余额充值