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

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

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

1、是否滾動(dòng)到底部

 isScrollBottom() {
   // 是否滾動(dòng)到了底部
   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 }) // 隱藏直達(dá)最新消息按鈕
    this.isBottom = true
    this.isTop = false
   } else {
    this.$store.dispatch('setBottomBtn', true, { root: true }) // 顯示直達(dá)最新消息按鈕
    this.isTop = false
    this.isBottom = false
    if (scrollTop == 0) {
     this.isTop = true
    }
   }
  },

2、scroll滾動(dòng)方向判斷

  getDirection() {
   // scroll滾動(dòng)方向~~~~
   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、滾動(dòng)節(jié)流

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


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

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

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

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

  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存儲(chǔ)到isSeeDomArr
    }
   }
   if (isSeeDomArr.length) {
    // 非 ceo接診臺(tái)更新消息的已讀狀態(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)
      }
     }
    }
    // 更新聊天對(duì)應(yīng)的咨詢軌跡
    this.setCurrentFdAsk(
     isSeeDomArr[isSeeDomArr.length - 1].getAttribute('fdAsk')
    )
   }
  },

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

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

相關(guān)文章

  • vue中eslint導(dǎo)致的報(bào)錯(cuò)問題及解決

    vue中eslint導(dǎo)致的報(bào)錯(cuò)問題及解決

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    vue如何通過某個(gè)字段獲取詳細(xì)信息

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

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

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

最新評(píng)論

利津县| 双桥区| 揭阳市| 忻城县| 峨眉山市| 富蕴县| 巢湖市| 伊春市| 诏安县| 崇信县| 铜梁县| 吉隆县| 陇南市| 台州市| 襄樊市| 昌吉市| 黑水县| 常宁市| 苗栗县| 靖江市| 鱼台县| 南平市| 永登县| 兰考县| 巴东县| 广丰县| 望都县| 新干县| 晴隆县| 海南省| 深圳市| 汉源县| 杂多县| 中江县| 澄江县| 子洲县| 宝鸡市| 墨竹工卡县| 漠河县| 九龙城区| 裕民县|