最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3如何監(jiān)聽頁面的滾動

 更新時間:2023年07月03日 10:20:56   作者:至尊絕倫  
這篇文章主要給大家介紹了關于vue3如何監(jiān)聽頁面的滾動的相關資料,在vue中實現(xiàn)滾動監(jiān)聽和原生js無太大差異,文中通過圖文介紹的非常詳細,需要的朋友可以參考下

有的時候監(jiān)聽的是window的滾動,有的時候是監(jiān)聽元素的滾動。 

我們可以先創(chuàng)建一個hook。useScroll.js

import { onMounted,onUnmounted, ref } from 'vue'
import { throttle } from 'underscore'
export default function useScroll(elRef){
  let el = window
  const isReachBottom = ref(false)
  const clientHeight = ref(0)
  const scrollTop = ref(0)
  const scrollHeight = ref(0)
  const scrollListenerHandler = throttle(() => {
    if(el === window){
      clientHeight.value =  document.documentElement.clientHeight
      scrollHeight.value = document.documentElement.scrollHeight
      scrollTop.value = document.documentElement.scrollTop
    }else {
      clientHeight.value = el.clientHeight
      scrollTop.value = el.scrollTop
      scrollHeight.value = el.scrollHeight
    }
    if(clientHeight.value + scrollTop.value >= scrollHeight.value){
      // homeStore.fetchHouselistData()
      isReachBottom.value = true
    }
  }, 100)
  onMounted(()=> {
    if(elRef) {
      el = elRef.value
    }
    el.addEventListener("scroll", scrollListenerHandler)
  })
  onUnmounted(()=>{
    el.removeEventListener("scroll", scrollListenerHandler)
  })
  return { isReachBottom, clientHeight, scrollTop, scrollHeight }
}

 可以傳入元素實例參數(shù)elRef,如果沒有傳入的話就初始化為window。

在掛載完成之后判斷是否傳入了元素實例elRef,如果有的話就使用元素實例,監(jiān)聽元素的滾動。

還需修改window還是元素滾動的判定。 

下面是使用這個hook的方法。 

使用ref取到需要滾動的元素實例。將取到的元素實例傳入到useScroll中。

使用useScroll這個hook,取出scrollTop的值進行判斷。

總結

到此這篇關于vue3如何監(jiān)聽頁面的滾動的文章就介紹到這了,更多相關vue3監(jiān)聽頁面滾動內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue2.0使用v-for循環(huán)制作多級嵌套菜單欄

    vue2.0使用v-for循環(huán)制作多級嵌套菜單欄

    這篇文章主要介紹了vue2.0制作多級嵌套菜單欄,主要使用v-for循環(huán)生成一個多級嵌套菜單欄,這個方法應用非常廣泛,需要的朋友可以參考下
    2018-06-06
  • vue3中echarts的tooltip組件不顯示問題及解決

    vue3中echarts的tooltip組件不顯示問題及解決

    這篇文章主要介紹了vue3中echarts的tooltip組件不顯示問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 面試題:react和vue的區(qū)別分析

    面試題:react和vue的區(qū)別分析

    這篇文章主要介紹了react和vue的區(qū)別分析,在面試中經常會遇到,小編通過實例文字相結合的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • vue圖片壓縮與批量上傳方式

    vue圖片壓縮與批量上傳方式

    文章介紹了使用Vue和Element UI的el-upload組件實現(xiàn)圖片的批量上傳和壓縮功能,前端需引入image-conversion庫并設置相關屬性,關閉自動上傳,通過on-change事件校驗文件名和大小,并增加一個提交到服務器的按鈕
    2025-01-01
  • 快速解決element的autofocus失效問題

    快速解決element的autofocus失效問題

    這篇文章主要介紹了快速解決element的autofocus失效問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 一文詳解如何在Vue3+Vite中使用JSX

    一文詳解如何在Vue3+Vite中使用JSX

    vite是一個由vue作者尤雨溪專門為vue打造的開發(fā)利器,其目的是使 vue項目的開發(fā)更加簡單和快速,下面這篇文章主要給大家介紹了關于如何在Vue3+Vite中使用JSX的相關資料,需要的朋友可以參考下
    2023-02-02
  • Vuex state中同步數(shù)據和異步數(shù)據方式

    Vuex state中同步數(shù)據和異步數(shù)據方式

    這篇文章主要介紹了Vuex state中同步數(shù)據和異步數(shù)據方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解VUE調用本地json的使用方法

    詳解VUE調用本地json的使用方法

    這篇文章主要介紹了VUE調用本地json的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • element中使用formdata進行上傳文件的方法

    element中使用formdata進行上傳文件的方法

    本文主要介紹了elementUI中使用formdata進行上傳文件的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Vue2實現(xiàn)自適應屏幕大小的兩種方法詳解

    Vue2實現(xiàn)自適應屏幕大小的兩種方法詳解

    這篇文章主要為大家詳細介紹了Vue2實現(xiàn)自適應屏幕大小的兩種方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03

最新評論

闸北区| 平塘县| 屏边| 乌海市| 香河县| 元阳县| 中超| 卢湾区| 长春市| 马公市| 辽宁省| 饶河县| 思茅市| 潼关县| 闵行区| 长岭县| 内江市| 肃宁县| 宜章县| 博客| 克东县| 德昌县| 托里县| 新宁县| 大荔县| 甘谷县| 白山市| 宁安市| 阳东县| 凤庆县| 四川省| 信丰县| 驻马店市| 桐柏县| 年辖:市辖区| 临桂县| 襄城县| 东山县| 穆棱市| 叶城县| 麻城市|