移动端H5页面使用Vant组件库下拉刷新和页面滚动事件冲突

Vant组件库van-pull-refresh踩坑

van-pull-refresh在开发过程会和内容中最近的拥有overflow的元素的滚动发生冲突,造成向上滑动的时候会下拉加载

<van-pull-refresh v-model="refreshing"  @refresh="onRefresh">
    <van-list
              v-model="refreshFlag"
              offset="20"
              finished-text="刷新成功"
              pulling-text="下拉可以刷新"
              loosing-text="松开立即刷新"
              @refresh="onRefresh"
              :pull-distance="80"
              :disabled="refreshDisabled"
              :immediate-check="false"
              >
        <van-cell v-for="item in list" :key="item.id" :title="item" />
    </van-list>
</van-pull-refresh>

目前使用的,并且已经解决问题的方法是通过通过设置::disabled=“refreshDisabled”,限制滚动实现的。
原理是:当滚动元素的scrollTop === 0 的时候,再下拉说明是下拉加载,然后更该:refreshDisabled的值为false,就可以实现加载了。

const refreshDisabled = ref(false);
const content = ref()

const handleScroll = (event) => {
  // <el-table>...</el-table>
  // 有一些组件原本的自带的滚动不一定是scrollTop,比如el-table是.bodyWrapper.scrollTop
  const scrollTop = event.target.scrollTop
  if(scrollTop<=0){
    refreshDisabled.value = false
  }else{
    refreshDisabled.value = true
  }
}
onMounted(async()=>{
  content.value.addEventListener('scroll', handleScroll)
})
onUnmounted (()=>{
	content.value.removeEventListener('scroll', handleScroll)
})

仅供参考

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 17:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 17:56:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 17:56:02       82 阅读
  4. Python语言-面向对象

    2024-04-28 17:56:02       91 阅读

热门阅读

  1. 大模型日报2024-04-27

    2024-04-28 17:56:02       36 阅读
  2. ssh -t 命令使用

    2024-04-28 17:56:02       29 阅读
  3. SSH ControlMaster功能

    2024-04-28 17:56:02       31 阅读
  4. 在ubuntu20上编译bcc时遇到:Could NOT find LibDebuginfod

    2024-04-28 17:56:02       36 阅读
  5. mysql数据库开发军规

    2024-04-28 17:56:02       27 阅读
  6. 朱元璋逆袭史:从流浪行僧到大明雄主

    2024-04-28 17:56:02       33 阅读
  7. Nest.js项目初始配置

    2024-04-28 17:56:02       36 阅读
  8. Redis(四) 主从、哨兵、集群环境搭建

    2024-04-28 17:56:02       29 阅读