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

vue scroll滾動判斷的實現(xiàn)(是否滾動到底部、滾動方向、滾動節(jié)流、獲取滾動區(qū)域dom元素)

 更新時間:2020年06月11日 11:09:05   作者:云胡不喜  
這篇文章主要介紹了vue scroll滾動判斷的實現(xiàn)(是否滾動到底部、滾動方向、滾動節(jié)流、獲取滾動區(qū)域dom元素),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1、是否滾動到底部

 isScrollBottom() {
   // 是否滾動到了底部
   this.box = this.$refs.chatListWrapper
   var clientHeight = this.box.clientHeight
   var scrollTop = this.box.scrollTop
   var scrollHeight = this.box.scrollHeight
   if (scrollTop + clientHeight == scrollHeight) {
    this.$store.dispatch('setBottomBtn', false, { root: true }) // 隱藏直達最新消息按鈕
    this.isBottom = true
    this.isTop = false
   } else {
    this.$store.dispatch('setBottomBtn', true, { root: true }) // 顯示直達最新消息按鈕
    this.isTop = false
    this.isBottom = false
    if (scrollTop == 0) {
     this.isTop = true
    }
   }
  },

2、scroll滾動方向判斷

  getDirection() {
   // scroll滾動方向~~~~
   this.box = this.$refs.chatListWrapper
   var scrollTop = this.box.scrollTop
   var scroll = scrollTop - this.initTop
   this.initTop = scrollTop
   let dir = 'down'
   if (scroll < 0) {
    dir = 'up'
   } else {
    dir = 'down'
   }
   return dir
  },

3、滾動節(jié)流

1)、在滾動的dom上綁定scroll事件,監(jiān)聽滾動


2)、data中定義:fnScroll: () => {}, 初始值
3)、mounted中給fnScroll函數(shù)賦值,_.throttle實現(xiàn)滾動節(jié)流

this.fnScroll = _.throttle(() => {
}, 500)

4、獲取滾動可視區(qū)域內(nèi)dom:

實現(xiàn)注意:判斷當前元素是否在可視區(qū)域內(nèi),若在則存到isSeeDomArr中,然后循環(huán)isSeeDomArr數(shù)組,拿到當前可視區(qū)域內(nèi)的最后一個dom,再去判斷是否更新對應的咨詢軌跡。
不要滾動時就去更新,這樣會造成不停請求更新,最后一次請求可能無效,造成數(shù)據(jù)的錯亂

  sendRead() {
   const chatLi = document
    .getElementById('chat_list_wrapper')
    .getElementsByTagName('li')
   var container = this.$refs.chatListWrapper
   var swHeight = container.clientHeight
   const scrollTop = container.scrollTop
   const aa = swHeight + scrollTop
   let isSeeDomArr = []
   for (let j = 0; j < chatLi.length; j++) {
    if (scrollTop < chatLi[j].offsetTop && chatLi[j].offsetTop < aa) {
     isSeeDomArr.push(chatLi[j]) //將可視區(qū)域內(nèi)所有dom存儲到isSeeDomArr
    }
   }
   if (isSeeDomArr.length) {
    // 非 ceo接診臺更新消息的已讀狀態(tài)
    if (this.$route.path.indexOf('diagnose/ceo') === -1) {
     for (let m = 0; m < isSeeDomArr.length; m++) {
      const isSelfSend = isSeeDomArr[m].getAttribute('isSelfSend')
      const msgStatus = isSeeDomArr[m].getAttribute('msgStatus')
      const msgType = isSeeDomArr[m].getAttribute('msgType')
      if (!isSelfSend && !msgStatus && msgType !== 'notice') {
       const _id = isSeeDomArr[m].getAttribute('id')
       this.sendReadApi(_id)
      }
     }
    }
    // 更新聊天對應的咨詢軌跡
    this.setCurrentFdAsk(
     isSeeDomArr[isSeeDomArr.length - 1].getAttribute('fdAsk')
    )
   }
  },

the end:滾動加載這些判斷前前后后改了好多次,這次終于感覺邏輯比較清晰了,也算對自己有個交代。。。

到此這篇關(guān)于vue scroll滾動判斷的實現(xiàn)(是否滾動到底部、滾動方向、滾動節(jié)流、獲取滾動區(qū)域dom元素)的文章就介紹到這了,更多相關(guān)vue scroll滾動判斷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中eslint導致的報錯問題及解決

    vue中eslint導致的報錯問題及解決

    這篇文章主要介紹了vue中eslint導致的報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue實現(xiàn)列表滑動下拉加載數(shù)據(jù)的方法

    vue實現(xiàn)列表滑動下拉加載數(shù)據(jù)的方法

    文章介紹了如何使用Vue實現(xiàn)列表滑動下拉加載數(shù)據(jù)的功能,通過監(jiān)聽滾動事件,檢測用戶是否滾動到底部,然后動態(tài)加載更多數(shù)據(jù),附帶了實現(xiàn)思路和案例代碼,感興趣的朋友一起看看吧
    2024-11-11
  • vue3中使用sse最佳實踐,封裝工具詳解

    vue3中使用sse最佳實踐,封裝工具詳解

    這篇文章主要介紹了vue3中使用sse最佳實踐,封裝工具,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue請求服務器數(shù)據(jù)后綁定不上的解決方法

    vue請求服務器數(shù)據(jù)后綁定不上的解決方法

    今天小編就為大家分享一篇vue請求服務器數(shù)據(jù)后綁定不上的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue之父組件向子組件傳值并改變子組件的樣式

    vue之父組件向子組件傳值并改變子組件的樣式

    這篇文章主要介紹了vue之父組件向子組件傳值并改變子組件的樣式,需要的朋友可以參考下
    2022-12-12
  • vue webpack build資源相對路徑的問題及解決方法

    vue webpack build資源相對路徑的問題及解決方法

    這篇文章主要介紹了vue webpack build資源相對路徑的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • vue2實現(xiàn)pdf電子簽章問題記錄

    vue2實現(xiàn)pdf電子簽章問題記錄

    仿照e簽寶,實現(xiàn)pdf電子簽章?=>?拿到pdf鏈接,移動章的位置,獲取章的坐標,怎么實現(xiàn)呢,下面小編給大家介紹vue2實現(xiàn)pdf電子簽章問題記錄,感興趣的朋友一起看看吧
    2023-12-12
  • VUE中watch的詳細使用教程(推薦!)

    VUE中watch的詳細使用教程(推薦!)

    這篇文章主要給大家介紹了關(guān)于VUE中watch的詳細使用教程,watch是vue實例的一個屬性,主要用來監(jiān)聽數(shù)據(jù)的變化,并做出一些操作,需要的朋友可以參考下
    2023-08-08
  • vue如何通過某個字段獲取詳細信息

    vue如何通過某個字段獲取詳細信息

    這篇文章主要介紹了vue如何通過某個字段獲取詳細信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue記住滾動條和實現(xiàn)下拉加載的完美方法

    Vue記住滾動條和實現(xiàn)下拉加載的完美方法

    這篇文章主要給大家介紹了關(guān)于Vue記住滾動條和實現(xiàn)下拉加載的完美方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-07-07

最新評論

阿克苏市| 襄汾县| 土默特右旗| 涞水县| 沂南县| 巴楚县| 乐山市| 桃源县| 绥江县| 桦甸市| 五家渠市| 兴文县| 双鸭山市| 静乐县| 桃江县| 东港市| 林州市| 香河县| 阆中市| 鸡泽县| 来安县| 新津县| 汶川县| 钦州市| 麟游县| 安国市| 辽源市| 平陆县| 鹿泉市| 永平县| 萨迦县| 扶风县| 吉首市| 南陵县| 阿巴嘎旗| 军事| 长治县| 祥云县| 安溪县| 汾西县| 疏附县|