中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在vue2.0中使用better-scroll 實現一個移動端滑動

發布時間:2021-04-09 16:41:51 來源:億速云 閱讀:181 作者:Leah 欄目:web開發

怎么在vue2.0中使用better-scroll 實現一個移動端滑動?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

滑動右邊使左邊聯動的大概的思路:

1)要知道右側的列表中,每一個分欄所占的高度,存進一個數組中。

2)實現左邊聯動,則必須要監控 “scroll”事件,獲取其高度

3)將scroll 的高度與右側分欄的高度進行比較,獲得其 index 值

4)左側的分類中,使與 index 相應的分欄高亮即可~

余留的問題:額,左側怎么跟著一起滾動?應該還需要判斷一下當前左側欄中的scroll的位置,然后使之跟隨變化,但是不同尺寸的手機,高度不一,怎么解決???我不知道……

點擊左邊時,右邊實現自動定位的大概思路:

1)首先要使點擊有效,因為 better-scroll將默認事件都阻止了

2)為左側的分欄綁定點擊事件,并獲取 index ,然后使右邊的相應 index 分類滾動就行了~so easy ....but!!!

怎么下手?!!

1. 先實現滑動右邊觸發左邊的功能:

做法:

(1)定義變量先~ 在data中加入一個 listHight: [] 數組;一個變量scrollY : 0,用來裝目前的scroll的y位置坐標

(2)在methods 中定義一個函數計算高度,此處還要用到一個知識點(如何獲取 分類列表dom元素?)還記得上一篇中使用到的this.$refs 嗎?

我們先給要獲取高度的那個元素取個類名,名字叫:“food-list-hook”:

let foodList =this.$refs.foodsWrapper.getElementsByClassName('food-list-hook') 這樣就獲取了所有分類列表啦,計算方法定義如下:

_calculateHeight () {
    // console.log(this)
    let foodList = this.$refs.foodsWrapper.getElementsByClassName('food-list-hook')
    let height = 0
    this.listHight.push(height)
    for (let i = 0; i < foodList.length; i++) {
     let item = foodList[i]
     height += item.clientHeight
     this.listHight.push(height)
    }
}

(3)然后在計算屬性computed 中,來比較數組中的高度值與當前的 scroll 的y坐標值,返回的是當前所在高度的index值:

在執行這一步時,scrollY的值,要怎么得到?(通過better-scroll 檢測“scroll”事件得到,此時,需要給其加上相應的參數,做法如截圖中畫紅線處所示)

怎么在vue2.0中使用better-scroll 實現一個移動端滑動

currentIndex () {
    for (let i = 0; i < this.listHight.length; i++) {
     let height1 = this.listHight[i]
     let height2 = this.listHight[i + 1]
     if (!height2 || (this.scrollY >= height1 && this.scrollY < height2)) {
      return i
     }
    }
    return 0
   }
 }  

(4)在 template 中,將此index 值綁定到index 值相等的左側的列表分欄中,并指定一個類名,叫 current,如下圖中的 畫紅線的部分:

怎么在vue2.0中使用better-scroll 實現一個移動端滑動 

(5)在style中,將相應的current 類加上相應的樣式即可:

怎么在vue2.0中使用better-scroll 實現一個移動端滑動

2. 再來實現點擊左邊,右邊聯動的效果

(1)使 左邊欄 點擊有效,如下圖紅線標注所示:

    怎么在vue2.0中使用better-scroll 實現一個移動端滑動

(2)為左側欄 添加相應的點擊事件:

怎么在vue2.0中使用better-scroll 實現一個移動端滑動

(3)在methods 中編寫點擊觸發的事件 selectMenu()方法,利用 獲取的 $index 使右邊進行相應的滾動,其中 300ms是加上了一個過渡效果:

怎么在vue2.0中使用better-scroll 實現一個移動端滑動

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建瓯市| 沙坪坝区| 兖州市| 个旧市| SHOW| 牡丹江市| 衡水市| 肥东县| 南康市| 资中县| 花莲市| 灵寿县| 白银市| 扎囊县| 水城县| 景德镇市| 和龙市| 海晏县| 乡城县| 新乡市| 长兴县| 洱源县| 遂昌县| 渝北区| 拜城县| 汤原县| 沛县| 宁南县| 府谷县| 珲春市| 新安县| 南部县| 汉中市| 沐川县| 南投市| 子长县| 澄迈县| 陆良县| 马关县| 汝城县| 尚志市|