微信小程序自定义弹窗内容,弹窗内容需要滚动的情况下整个页面滑动的问题解决

情景描述:

自定义弹出层内容过多,需要滚动的情况下整体页面都滑动

解决

1.整个布局用作为根节点包裹所有view,并动态绑定scroll-view的scroll-y属性

<scroll-view style="scroll-y:{{isScroll}}" scroll-y="{{isScroll}}" bindscrolltolower='lower'>
</scroll-view>

2.样式文件中设置Page的overflow-y属性值为hidden

page{
background: #fff;
position: absolute;
font-size: 36rpx;
width: 100%;
height: 100%;
display: block;
overflow-y: hidden;
}
scroll-view {
height: 100%;
}


3.样式文件中设置scroll-view的height属性值为100%
4.打开自定义弹窗的点击事件中,更改isScroll的值为false,关闭弹窗的点击事件中,更改isScroll的值为true

<view class="sorting-list{{!isstart1?' chioce-list-hide':' chioce-list-show'}}">
<view style="overflow: scroll;height:80%;-webkit-overflow-scrolling:auto;">
<view wx:for="{{slist1}}" catchtap="onclicks1" data-id="{{item.id}}" data-index="{{index}}" class="sorting-item" hover-class="click-once" wx:key="userInfoListId" >{{item.name}}</view>
</view>
</view>
 
点击事件
opens1: function (e) {
console.log(e)
this.setData({
 
isstart: false,
isScroll:false
});
switch (e.currentTarget.dataset.item) {
case "2":
if (this.data.isstart1) {
this.setData({
isstart1: false,
isScroll:true
});
}
else {
this.setData({
isstart1: true,
isScroll:false
});
}
break;
}
},
 
注意事项
<view style="overflow: scroll;height:80%;-webkit-overflow-scrolling:auto;">
这段话要包裹在渲染内容区域的外层
overflow: scroll;height:80%;这是允许内容区域滚动
;-webkit-overflow-scrolling:auto;  这是在ios上内容区域会出现弹动,auto是手指离开屏幕滑动就停止,touch是允许弹动
 
bindscrolltolower='lower'
使用scroll-view后页面的上拉触底就失效了,这个方法可以重新获取到触底情况
 
 

猜你喜欢

转载自www.cnblogs.com/lishuang2243/p/12200043.html
今日推荐