微信小程序如何禁止页面的滚动

发布于 2022-09-11 21:15:16 字数 119 浏览 15 评论 0

现在是有弹出悬浮窗
希望下层不能滚动

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

无名指的心愿 2022-09-18 21:15:16

在模态框上加上catchtouchmove='true' 就好了啊 其他地方找到的

淡忘如思 2022-09-18 21:15:16

我也遇到这个问题了。。可以参考帖子
https://www.jianshu.com/p/602...

1.整个布局用<scroll-view>作为根节点包裹所有view,并动态绑定scroll-view的scroll-y属性<scroll-view scroll-y="{{isScroll}}">
2.样式文件中设置Page的overflow-y属性值为hidden
3.样式文件中设置scroll-view的height属性值为100%
4.打开自定义弹窗的点击事件中,更改isScroll的值为false,关闭弹窗的点击事件中,更改isScroll的值为true

刚刚已经解决了,很好用哦!

如果没有下拉刷新呢,用上面的方法还是可以的,上面的方法是针对了page设置全局的哦,对于有滚动事件,比如下拉刷新或者上拉加载的是不适用的哦,今天又试了一下更简单的方法哦。在外层添加一个view
<view class='page' style='height:{{clientHeight}};overflow:{{overflow}};'> 然后动态算出设备高度, wx.getSystemInfo windowHeight 。就可以啦,直接控制外层view的overflow

静水深流 2022-09-18 21:15:16

禁用touchmove事件

飘落散花 2022-09-18 21:15:16

最外层加一个view 设置高度为100vh添加overflow:hidden
就可以了 百试不爽

怪我闹别瞎闹 2022-09-18 21:15:16

再wxss里面添加

 page {
   overflow: hidden
 }

就可以。可惜js不能直接改wxss,或者再wxml里面引入style. 不如网页来得方便

向日葵 2022-09-18 21:15:16

给弹窗最外层view加catchtouchmove="true"
如果弹窗里面需要滚动,就使用scroll-view

謌踐踏愛綪 2022-09-18 21:15:16

提供一个比较通用的解决方案

通过 wxs实现动态控制滚动行为
下面的例子是uni-app的,原生小程序、Taro方案基本一致

<template>
  <view class="modal" @touchmove="wxs.touchmove" :data-prevent="prevent">
    <scroll-view scroll-y>
      // 使用scroll-view包裹内部可滚动内容
    </scroll-view>
  </view>
<template>

<script module="wxs" lang="wxs">
function touchmove(event, ins) {
  var data = ins.selectComponent('.modal').getDataset()
  if (data.prevent) {
    return false
  }
}
module.exports = {
  touchmove: touchmove,
}
</script>

<script>
export default {
  name: 'Demo',
  data() {
    prevent: false, // 禁用滚动开关
  },
  methods: {
    disable() {
      this.prevent = false
    },
  },
}
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文