欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue2實(shí)現(xiàn)帶有阻尼下拉加載的功能

 更新時(shí)間:2023年02月16日 10:34:15   作者:砂糖橘加鹽  
這篇文章主要為大家介紹了vue2實(shí)現(xiàn)帶有阻尼下拉加載的功能示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

在vue中 需要綁定觸發(fā)的事件

<div
  id="testchatBox"
  class="chatWrap"
  :style="{paddingTop: chatScroollTop + 'px'}"
  @touchstart="touchStart" 
  @touchmove="touchMove"
  @touchend="touchEnd">
</div>

代碼片段使用到了三個(gè)回調(diào)函數(shù):

  • touchstart: 手指觸摸到屏幕的那一刻的時(shí)候
  • touchmove: 手指在屏幕上移動(dòng)的時(shí)候
  • touchend: 手指離開屏幕的時(shí)候

paddingTop可以看出,我們是通過控制這個(gè)容器距離的頂部的padding來實(shí)現(xiàn)下拉的效果。所以說我們的重調(diào)就是通過上面的三個(gè)回調(diào)函數(shù)來確定chatScroollTop的值。

通過chatScroollTop 這個(gè)命名就可以知道,我們這個(gè)下拉刷新是用在聊天框容器當(dāng)中.

需要使用的變量

我們需要使用這些變量:

data() {
  return {
    chatScroollTop: 0, // 容器距離頂部的距離 
    isMove: false, // 是否處于touchmove狀態(tài)
    startY: 0, // 當(dāng)前手指在屏幕中的y軸值
    pageScrollTop: 0, // 滾動(dòng)條當(dāng)前的縱坐標(biāo)
  }
}

三個(gè)回調(diào)函數(shù)對(duì)應(yīng)三個(gè)階段,而我們核心代碼也分為三個(gè)部分:

第一部分:初始化當(dāng)前容器的到頂部的距離,以及初始化當(dāng)前是否處于滑動(dòng)的狀態(tài),并獲取當(dāng)前滾動(dòng)條的縱坐標(biāo)。

touchStart(e) {
  // e代表該事件對(duì)象,e.targetTouches[0].pageY可以拿到手指按下的 y軸點(diǎn)
  this.startY = e.targetTouches[0].pageY
  // 開啟下拉刷新狀態(tài)
  this.isMove = false
  this.pageScrollTop = document.documentElement &amp;&amp; document.documentElement.scrollTop
}

第二部分:根據(jù)當(dāng)前手指當(dāng)前距離觸摸屏幕時(shí)刻的縱坐標(biāo)差來確定容器和頂部的距離。但是由于不能一直的滑動(dòng),所以給了一個(gè)0 -> 80的氛圍。為了讓滑動(dòng)更加的有趣,添加了一個(gè)step步進(jìn)值來調(diào)整滑動(dòng)的距離比例,所謂的距離比例就是手指距離一開始的距離越遠(yuǎn),那么容量跟著滑動(dòng)的距離就越短。實(shí)現(xiàn)一個(gè)類似阻尼的效果。

touchMove(e) {
  // 這個(gè) touchMove,只要頁面在動(dòng)都會(huì)發(fā)生的,所以 touching就起作用了
  // 獲取移動(dòng)的距離
  let diff = e.targetTouches[0].pageY - this.startY
  let step = 60
  if (diff > 0 && diff < 80 && this.pageScrollTop === 0) {
     step++ // 越來越大
     this.chatScroollTop += (diff / (step * 0.1)) // 越向下給人的阻力感越大
     this.isMove = true
  }
}

第三部分:手指松開之后,給一個(gè)距離頂部的距離是為了添加加載滾動(dòng)條。

  touchEnd() {
    if(this.isMove) {
      this.chatScroollTop = 40
      this.downCallback() // api拉取數(shù)據(jù)
    }
  }
  async downCallback() {
    try {
       // 拿數(shù)據(jù) 
    } catch() {} 
    finall{
      this.chatScrollTop = 0
    }
  }

以上就是vue2實(shí)現(xiàn)帶有阻尼下拉加載的功能的詳細(xì)內(nèi)容,更多關(guān)于vue2阻尼下拉加載的功能的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文詳解Vue中加上key后發(fā)生什么

    一文詳解Vue中加上key后發(fā)生什么

    本文主要介紹了一文詳解Vue中加上key后發(fā)生什么,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Vue 重置data的數(shù)據(jù)為初始狀態(tài)操作

    Vue 重置data的數(shù)據(jù)為初始狀態(tài)操作

    這篇文章主要介紹了Vue 重置data的數(shù)據(jù)為初始狀態(tài)操作方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 去除Element-Plus下拉菜單邊框的實(shí)現(xiàn)步驟

    去除Element-Plus下拉菜單邊框的實(shí)現(xiàn)步驟

    Element-Plus 是 Element UI 的 Vue 3 版本,它提供了一套完整的組件庫,在使用 Element-Plus 進(jìn)行開發(fā)時(shí),我們可能會(huì)遇到需要自定義組件樣式的情況,本文將介紹如何使用 CSS 來去除 Element-Plus 下拉框的邊框,需要的朋友可以參考下
    2024-03-03
  • vue實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器功能

    vue實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • vue如何從接口請(qǐng)求數(shù)據(jù)

    vue如何從接口請(qǐng)求數(shù)據(jù)

    本篇文章主要介紹了vue如何從接口請(qǐng)求數(shù)據(jù) ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • vite.config配置alias Error: ENOTEMPTY: directory not empty, rmdir

    vite.config配置alias Error: ENOTEMPTY: director

    這篇文章主要為大家介紹了vite.config配置alias時(shí)報(bào)錯(cuò):Error: ENOTEMPTY: directory not empty, rmdir解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • vue如何實(shí)現(xiàn)簡(jiǎn)易流程圖

    vue如何實(shí)現(xiàn)簡(jiǎn)易流程圖

    這篇文章主要介紹了vue如何實(shí)現(xiàn)簡(jiǎn)易流程圖問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue自定義表單內(nèi)容檢查rules實(shí)例

    Vue自定義表單內(nèi)容檢查rules實(shí)例

    這篇文章主要介紹了Vue自定義表單內(nèi)容檢查rules實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue3?typescript封裝axios過程示例

    vue3?typescript封裝axios過程示例

    這篇文章主要為大家介紹了vue3?typescript封裝axios過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • vue樹形結(jié)構(gòu)獲取鍵值的方法示例

    vue樹形結(jié)構(gòu)獲取鍵值的方法示例

    這篇文章主要介紹了vue樹形結(jié)構(gòu)獲取鍵值的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06

最新評(píng)論