小程序自定义弹窗禁止底部内容滚动(滚动穿透问题)

小程序自带的弹窗比较简单,在实际项目中,我们往往需要自定义弹窗以满足较为复杂的业务需求。弹窗时底层内容一般都是不滚动,我们可以用下面几种方法实现:

1、catchtouchmove="true"

可以实现弹框背景不滚动,但是也会导致弹框自身无法滚动,如果你的弹窗本身是不需要滚动的,用这个方法是极佳的。

<view class="modal" catchtouchmove="true">
    <view class="shade"></view>
    <view class="content"></view>
</view>

2、底部内容区使用scroll-view

设置垂直滚动,并将scroll-view的高度设置为屏幕高度,这样就可以实现弹窗自身内容滚动时,而底层内容不滚动。

<scroll-view class="container" scroll-y style="height:{{windowHeight}}px">
    底部内容
</scroll-view>
<view class="modal"></view>
 /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /*获取屏幕高度*/
    this.setData({
      windowHeight: wx.getSystemInfoSync().windowHeight
    })
  },

3、固定布局/绝对定位

.forbidScroll {
  position: fixed/absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

tip:有尝试过为wxml最外层元素添加overflow: hidden来实现禁止滚动,然而发现只有为page元素添加该样式才起作用,而在js中又无法动态为page添加样式,遂作罢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,040评论 3 119
  • 内容 抽屉菜单 ListView WebView SwitchButton 按钮 点赞按钮 进度条 TabLayo...
    小狼W阅读 5,481评论 0 10
  • 原文链接:https://github.com/opendigg/awesome-github-android-u...
    IM魂影阅读 33,037评论 6 472
  • 聊到理想,情不禁,心如醉… 我说:“我的爱人,一个是博览天下群书,贴近她的身边仿佛能闻到翰墨飘香。一个是周游名山大...
    花奇楠阅读 1,488评论 0 0
  • 一臂之力,迷惑不解,暗自思量,照章办事,转瞬即逝,问所未闻,非常壮观,和谐美丽。 如果我有一条围巾,我可以把它围在...
    王昊a阅读 1,573评论 0 0