采用movable-area,movable-view,catchtouchmove实现筛选时,阻止底层页面穿透滚动,根据之前的项目需求,做了相应的简化:
- movable-area,movable-view实现弹窗内筛选项的滚动
- catchtouchmove阻止页面滚动
https://developers.weixin.qq.com/s/xUPdx7mX75b8
采用movable-area,movable-view,catchtouchmove实现筛选时,阻止底层页面穿透滚动
采用movable-area,movable-view,catchtouchmove实现筛选时,阻止底层页面穿透滚动,根据之前的项目需求,做了相应的简化:
4 个评论
当我弹窗里也能滚动时,下面的页面还是会滚动
然而并没有卵用,遮罩都没出来
这个是我简化的功能,确实没加入遮罩,如果想看下真实的效果,可以搜下‘人互人家居’小程序,首页的tabbar页面,就有遮罩效果
做个补充:
采用这个方法,movable-area,movable-view是关键点
a. 在项目的实际开发中,想要内部发生滚动,movable-view的高度必须大于movable-area;
b. 这种方法最实用内部的布局比较均匀的情况,因为movable-view不会因为内部的高度自动撑开,必须手动设置高度,那么,问题就来了, 设置这个高度需要动态计算(内部的实际高度),所以,筛选项的布局越均匀,越容易计算并设置。实际要看开发ui
catchtouchmove是可以阻止滚动
a. 但是很多人catchtouchmove=‘true’,有这么属性设置就做到了,其实,catchtouchmove绑定的是事件,这样写框架认为,你实际绑定了一个函数名就叫true , 你可以看下控制台,他一定会抛出没有true这个处理函数。
b. 这里我采用动态判断的模式, 也就是当选择弹窗弹起时,catchtouchmove=‘自定的事件名’,开始组织页面滚动;当选择弹窗消失时,catchtouchmove=‘’,事件绑定为空,恢复页面滚动;
当然这个demo只是之前项目缩版,只是实现当下效果,实际开发更加复杂,仅供参考
沙发