前端vue滾動(dòng)條滾動(dòng)監(jiān)聽(tīng)問(wèn)題成功解決辦法
前言
前端處理滾動(dòng)條滾動(dòng)事件無(wú)非就是監(jiān)聽(tīng)scroll事件,但是我們經(jīng)常會(huì)遇到 滾動(dòng)事件頻繁觸發(fā), 無(wú)法正常獲取滾動(dòng)的元素,最常見(jiàn)的就是 處理滾動(dòng)位置
vueuse------useScroll的使用
安裝說(shuō)明
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'
<!--需要滾動(dòng)的容器--> <div id="container" ref="container" class="container"></div>
<!--第一個(gè)參數(shù)el(需要滾動(dòng)的容器)--> 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:用于記錄上次滾動(dòng)的scrollLeft的值, y:記錄上次滾動(dòng)的scrollTop的值, isScrolling: 表示是否正在滾動(dòng), arrivedState: {top/right/bottom/left}表示滾動(dòng)條是否到達(dá)指定邊界, directions: {top/right/bottom/left} 表示滾動(dòng)條正在滾動(dòng)的方向 -->
<!--第二個(gè)參數(shù),可以設(shè)置偏移量offset(滾動(dòng)條到達(dá)上下左右邊界的一個(gè)偏移值,例如left設(shè)置為30, 則水平滾動(dòng)條距離左邊界30px時(shí)則認(rèn)為到達(dá)了左邊界)--> const { x, y, isScrolling, arrivedState, directions } = useScroll(document.getElementById('container'), { offset: { top: 0, bottom: 300, right: 30, left: 0 }})
<!--第二個(gè)參數(shù),{behavior: smooth}設(shè)置平滑的滾動(dòng)--> const { x, y, isScrolling, arrivedState, directions } = useScroll(document.getElementById('container'), { behavior: 'smooth' })
2.可以手動(dòng)設(shè)置滾動(dòng)位置
3.這個(gè)方法也提供自定義指令的方式
自定義指令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.場(chǎng)景
1.滾動(dòng)到底部,出現(xiàn)‘返回頂部’按鈕
2.滾動(dòng)到底部,加載新數(shù)據(jù)
3.其他
總結(jié)
到此這篇關(guān)于前端vue滾動(dòng)條滾動(dòng)監(jiān)聽(tīng)問(wèn)題成功解決的文章就介紹到這了,更多相關(guān)前端vue滾動(dòng)條滾動(dòng)監(jiān)聽(tīng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
elementPuls 表格反選實(shí)現(xiàn)示例代碼
這篇文章主要介紹了elementPuls 表格反選實(shí)現(xiàn)示例代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-07-07vue-cli解決IE瀏覽器sockjs-client錯(cuò)誤方法
這篇文章主要為大家介紹了vue-cli解決IE瀏覽器sockjs-client錯(cuò)誤方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08vue3如何添加eslint校驗(yàn)(eslint-plugin-vue)
這篇文章主要介紹了vue3如何添加eslint校驗(yàn)(eslint-plugin-vue),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01完美解決vue引入BMapGL is not defined的問(wèn)題
在Vue項(xiàng)目中使用BMapGL時(shí),通過(guò)在src下添加bmp.js文件并配置密鑰(ak),可以有效解決地圖API的應(yīng)用問(wèn)題,本方法是基于個(gè)人經(jīng)驗(yàn)總結(jié),希望能為開(kāi)發(fā)者提供參考和幫助2024-10-10