美文网首页
h5移动端弹层出现禁止弹层下方页面滑动方式

h5移动端弹层出现禁止弹层下方页面滑动方式

作者: zdmission | 来源:发表于2019-11-29 12:23 被阅读0次

    摘要

    实现功能,弹层出现已经可以满足需求了,但是给予用户的交互体验不好,弹层出现,为什么弹层下边是可以滑动,上边可以动下边也可以动,用户的注意点在哪儿,潜在影响用户使用。

    解决方案

    本文例子以vue方式为例

    <div v-show="createReportLayer" class="fb-box zol-box spe-layer">
      <div class="loader">
        <div class="line-scale">
          <div></div>
          <div></div>
          <div></div>
          <div></div>
          <div></div>
        </div>
        <p>我知道了</p>
        <p>请耐心等候{{ dotTxt }}</p>
      </div>
    </div>
    

    方式一

    给弹层外层加上@touchmove.prevent,阻止默认事件,这样的前提是弹层内不存在可以上下或者左右滑动的元素。

    <div v-show="createReportLayer" class="fb-box zol-box spe-layer" @touchmove.prevent>
      <div class="loader">
        <div class="line-scale">
          <div></div>
          <div></div>
          <div></div>
          <div></div>
          <div></div>
        </div>
        <p>我知道了</p>
        <p>请耐心等候{{ dotTxt }}</p>
      </div>
    </div>
    

    方式二

    给弹层外层加上@touchmove.prevent,阻止默认事件,弹层内存在可以上下或者左右滑动的元素
    给里面需要滑动的元素加上better-scroll,具体better-scroll使用方式,请点击该处,可以实现局部滚动。

    方式三

    监听createReportLayer字段的值变化,如果弹层出现,就给body设置样式overflow: hidden;反之,删除overflow的样式,这样做的结果是,弹层上边可以自动的滑动,而弹层下方是不能滑动的。

    <template>
      <div>
        <div v-show="createReportLayer" class="fb-box zol-box spe-layer">
          <div class="loader">
            <div class="line-scale">
              <div></div>
              <div></div>
              <div></div>
              <div></div>
              <div></div>
            </div>
            <p>我知道了</p>
            <p>请耐心等候{{ dotTxt }}</p>
          </div>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: "",
      data() {
        return {
          createReportLayer: false
        }
      },
      watch: {
        createReportLayer() {
          if(this.createReportLayer) {
            document.body.style.cssText = `overflow: hidden;`
          }else {
            document.body.style.cssText = ``;
          }
        }
      }
    };
    </script>
    
    <style lang="scss" scoped></style>
    
    

    相关文章

      网友评论

          本文标题:h5移动端弹层出现禁止弹层下方页面滑动方式

          本文链接:https://www.haomeiwen.com/subject/jiiwwctx.html