移动端Vant action-sheet 无法滚动

遇到问题

在action-sheet弹出层组件内,内容多的时候,上下滑动无法滚动??

代码1:

​
<van-action-sheet  v-model="showActionSheet"
round
title="弹出"
>
    <child />
</van-action-sheet>

​

子组件:

<template>
    <div class="wrap">
        <div class="content1">
            content
        </div>
        <div class="content2">
            content2
        </div>
    </div>
</template>

<script>
    export default {
        
    }
</script>

<style lang="scss" scoped>
.wrap{
    overflow:scroll;
}
.content1,.content2{
    min-height:200px;
}
.content1{
    overflow:scroll;
}
</style>

问题原因:

vant 弹窗源码:

addLock: function addLock() {
  if (this.lockScroll) {
    (0, _event.on)(document, 'touchstart', this.touchStart);
    (0, _event.on)(document, 'touchmove', this.onTouchMove);

    if (!_context.context.lockCount) {
      document.body.classList.add('van-overflow-hidden');
    }

    _context.context.lockCount++;
  }
},
onTouchMove: function onTouchMove(event) {
  this.touchMove(event);
  var direction = this.deltaY > 0 ? '10' : '01';
  var el = (0, _scroll.getScroller)(event.target, this.$el);
  var scrollHeight = el.scrollHeight,
    offsetHeight = el.offsetHeight,
    scrollTop = el.scrollTop;
  var status = '11';
  /* istanbul ignore next */

  if (scrollTop === 0) {
    status = offsetHeight >= scrollHeight ? '00' : '01';
  } else if (scrollTop + offsetHeight >= scrollHeight) {
    status = '10';
  }
  /* istanbul ignore next */


  if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {
    (0, _event.preventDefault)(event, true);
  }
},

解决方法:

.content1 是无意中加了overflow:scroll, 去掉 overflow:scroll就好了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值