开发的时候,会遇到产品或者UI发出如下规定:

1、如果是一屏的页面,就禁止页面能上下滑动

2、如果显示弹窗的时候,长屏幕禁止上下滑动!

感叹一句:好变态

当然,感叹归感叹,但是还是得听不是,我找出了3种方式,看看大家喜欢哪个,就用哪个!

第一种方式:

页面最外层的盒子,使用绝对定位!这样页面也就不能滑动了!此方法呢,比较麻烦,写的代码比较多!但是还是能够实现的!源码如下:

 position: fixed;
  top:0;
  left:0;

第二种方式:

在微信小程序app.json的window中,添加”disableScroll”:true,但是要注意,如果你是要在app.json中添加disableScroll,会导致所有页面无法上下滑动,这就是个大bug了,解决也很简单,你想在那个页面禁止页面滑动,就在哪个页面的json下,添加disableScroll就可以了,单独设置就行!代码如下:

//app.json中添加,window里面添加就可以了
  "window": {
    "disableScroll": true
  },
  
  //单独设置,比如index下,就在index.json设置
  {
    "navigationBarTitleText": "首页",
    "disableScroll":true
  }

但是有些时候使用disableScroll并不合适,比如一个长页面,我需要弹窗出来的时候,才禁止上下滑动,弹窗隐藏的时候,又可以上下滑动!那就衍生第三个方式

第三种方式:

在弹窗的遮罩层或者内容层的view上,添加catchtouchmove=’true’,这个意思就是,你添加了catchtouchmove view的盒子,用户如果在这个盒子滑动的时候,是不能触发滑动效果的,一定要看清楚字面意思,不然会写错view,导致无效果哦!代码如下:

//弹窗遮罩层
<view  catchtouchmove='true'>
</view>

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐