前端vue滚动条滚动监听问题成功解决办法

 更新时间:2024年09月05日 09:11:43   作者:加仑小铁  
在Vue中监听滚动事件可以通过使用指令或者自定义事件来实现,这篇文章主要给大家介绍了关于前端vue滚动条滚动监听问题成功解决的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

前端处理滚动条滚动事件无非就是监听scroll事件,但是我们经常会遇到 滚动事件频繁触发, 无法正常获取滚动的元素,最常见的就是 处理滚动位置

vueuse------useScroll的使用

安装说明

vue3

npm i @vueuse/core --save

Vue2 的话还需要额外安装 @vue/composition-api

npm i @vue/composition-api --save

useScroll的使用

1.在@vueuse/core包下引入useScroll

import { useScroll } from '@vueuse/core'
<!--需要滚动的容器-->
<div id="container" ref="container" class="container"></div>
<!--第一个参数el(需要滚动的容器)-->
this.$nextTick(() => {
  const { x, y, isScrolling, arrivedState, directions } = useScroll(document.getElementById('container'))
  this.x = x
  this.y = y
  this.isScrolling = isScrolling
  this.arrivedState = arrivedState
  this.directions = directions
})
<!--
x:用于记录上次滚动的scrollLeft的值,
y:记录上次滚动的scrollTop的值,
isScrolling: 表示是否正在滚动,
arrivedState: {top/right/bottom/left}表示滚动条是否到达指定边界,
directions: {top/right/bottom/left} 表示滚动条正在滚动的方向
-->
<!--第二个参数,可以设置偏移量offset(滚动条到达上下左右边界的一个偏移值,例如left设置为30, 则水平滚动条距离左边界30px时则认为到达了左边界)-->
const { x, y, isScrolling, arrivedState, directions } = useScroll(document.getElementById('container'), { offset: { top: 0, bottom: 300, right: 30, left: 0 }})
<!--第二个参数,{behavior: smooth}设置平滑的滚动-->
const { x, y, isScrolling, arrivedState, directions } = useScroll(document.getElementById('container'), { behavior: 'smooth' })

2.可以手动设置滚动位置

3.这个方法也提供自定义指令的方式

自定义指令vScroll在@vueuse/components中

import { vScroll } from '@vueuse/components'

Vue.directive('scroll', vScroll)

<div id="container" ref="container" v-scroll="onScroll" class="container"></div>

onScroll({ x, y, isScrolling, arrivedState, directions }) {
  this.x = x
  this.y = y
  this.isScrolling = isScrolling
  this.arrivedState = arrivedState
  this.directions = directions
}

4.场景

1.滚动到底部,出现‘返回顶部’按钮

2.滚动到底部,加载新数据

3.其他

总结

到此这篇关于前端vue滚动条滚动监听问题成功解决的文章就介绍到这了,更多相关前端vue滚动条滚动监听内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中vxe-table虚拟滚动列表的使用详解

    vue中vxe-table虚拟滚动列表的使用详解

    vxe-table 是一个功能强大的 Vue 表格组件,它支持虚拟滚动列表作为其核心功能之一,本文主要介绍一下vxe-table的虚拟滚动列表功能的使用场景和优势,感兴趣的可以了解下
    2023-12-12
  • 使用Vue3生成二维码和条形码详细图文教程

    使用Vue3生成二维码和条形码详细图文教程

    在Vue项目和微信小程序中生成二维码和条形码是一个常见的需求,主要用于分享、产品识别等场景,这篇文章主要给大家介绍了关于使用Vue3生成二维码和条形码的相关资料,需要的朋友可以参考下
    2024-09-09
  • Vuex中this.$store.commit()和this.$store.dispatch()区别说明

    Vuex中this.$store.commit()和this.$store.dispatch()区别说明

    这篇文章主要介绍了Vuex中this.$store.commit()和this.$store.dispatch()区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue数据增删改查与表单验证的实现流程介绍

    Vue数据增删改查与表单验证的实现流程介绍

    这篇文章主要介绍了Vue数据增删改查与表单验证的实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-10-10
  • vue中router-view组件的使用详解

    vue中router-view组件的使用详解

    这篇文章主要介绍了vue中router-view组件的使用,这个时候我们就需要用到路由中的 router-view组件(也叫路由占位符)了,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • vue中el-table多层级嵌套的具体实现

    vue中el-table多层级嵌套的具体实现

    本文主要介绍了vue中el-table多层级嵌套的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • vue.js封装switch开关组件的操作

    vue.js封装switch开关组件的操作

    这篇文章主要介绍了vue.js封装switch开关组件的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • vue实现鼠标滑动展示tab栏切换

    vue实现鼠标滑动展示tab栏切换

    这篇文章主要为大家详细介绍了vue实现鼠标滑动展示tab栏切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue根据值给予不同class的实例

    vue根据值给予不同class的实例

    今天小编就为大家分享一篇vue根据值给予不同class的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue的diff算法原理你真的了解吗

    Vue的diff算法原理你真的了解吗

    这篇文章主要为大家详细介绍了Vue的diff算法原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03

最新评论