首页 前端知识 前端vue成功解决滚动条滚动监听问题!

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

2024-09-10 23:09:50 前端知识 前端哥 1002 389 我要收藏

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

    • vueuse------useScroll的使用
        • 安装说明
          • vue3
        • Vue2 的话还需要额外安装 @vue/composition-api
        • useScroll的使用
          • 1.在@vueuse/core包下引入useScroll
          • 2.可以手动设置滚动位置
          • 3.这个方法也提供自定义指令的方式
          • 4.场景

前端处理滚动条滚动事件无非就是监听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.其他

转载请注明出处或者链接地址:https://www.qianduange.cn//article/18072.html
标签
评论
发布的文章

javascript jQuery

2024-09-21 22:09:33

【若依】表格固定列宽

2024-09-21 22:09:30

Knockout-jQueryUI 使用指南

2024-09-21 22:09:29

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!