zoukankan      html  css  js  c++  java
  • 解决微信小程序滑动遮罩时底层跟着滑动的问题

    (开发小程序的时候用的是mpvue框架 + wux组件 + vue)

    开发小程序的时候碰到过这么一个比较坑的问题:打开自定义弹窗的时候,滑动遮罩时底层的内容会随着手指滑动而发生滑动(即滚动穿透),这点在安卓系统上问题还不是很大,在ios系统上时简直让人抓狂

    如:手指滑动截图中的遮罩,或者弹窗中的空白区域(红框区域),底层页面也会发生滚动,在IOS上,如果底层的滚动不停止,则弹窗中的内容无法滑动。。。

    我的解决方案如下:

    第一步:先找到pages.js文件设置 disableScroll: true

     这一步的目的就是禁止页面滚动

    第二步:由于第一步的设置会导致页面无法滚动,如果页面内容的高度超出屏幕的高度就无法看到超出的内容了,此时需要在页面中使用微信小程序的scroll-view组件

    <scroll-view :scroll-y="isScrollAble" :style="scrollViewHeight">
        <!-- 需要展示的内容 -->
    <scroll-view>

    在script中初始化一下

    data() {
      return {
           isScrollAble: true,
           scrollViewHeight: ''      
        }  
    }

    然后在methods中写一个获取手机屏幕的高度的方法,然后在onLoad()中调用一下

    get_window_height() {
      const self = this
       wx.getSystemInfo({
            success(res) {
               self.scrollViewHeight = 'height:' + res.windowHeight + 'px;'
            }
        })
    }

    最后,在触发自定义弹窗组件打开的时候,设置一下isScrollAble为false(禁止滚动),关闭的时候则设置为true(开启滚动)即可

    PS:因为我用的是第三方框架进行的小程序开发,如果使用的是小程序原生的话部分语法需要相应的修改

  • 相关阅读:
    Enter passphrase
    laravel扩展包-私有库
    php7中异常
    laravel-admin(自定义表单视图)
    laravel-admin(自定义表单与验证)
    ZJU校赛划水记
    bzoj 4762: 最小集合
    WC2017 颓废记
    bzoj 2337: [HNOI2011]XOR和路径
    bzoj 2870: 最长道路tree
  • 原文地址:https://www.cnblogs.com/SinW/p/11685865.html
Copyright © 2011-2022 走看看