国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue2.0 better-scroll 實現(xiàn)移動端滑動的示例代碼

2019-11-19 14:28:49
字體:
供稿:網(wǎng)友

寫在前面的話:

上一篇文章實現(xiàn)了滑動效果,這部分來試試左右聯(lián)動效果的實現(xiàn)方法吧

效果:滑動右側(cè)時,左側(cè)也能有相應的變化;點擊左側(cè)時,右側(cè)也能自動定位到相應的位置。

如下圖所示界面,左側(cè)為分欄,右側(cè)為分欄詳情。

滑動右邊使左邊聯(lián)動的大概的思路:

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

2)實現(xiàn)左邊聯(lián)動,則必須要監(jiān)控 “scroll”事件,獲取其高度

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

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

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

點擊左邊時,右邊實現(xiàn)自動定位的大概思路:

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

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

怎么下手??。?/p>

1. 先實現(xiàn)滑動右邊觸發(fā)左邊的功能:

做法:

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

(2)在methods 中定義一個函數(shù)計算高度,此處還要用到一個知識點(如何獲取 分類列表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 中,來比較數(shù)組中的高度值與當前的 scroll 的y坐標值,返回的是當前所在高度的index值:

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

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 值相等的左側(cè)的列表分欄中,并指定一個類名,叫 current,如下圖中的 畫紅線的部分:

 

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

2. 再來實現(xiàn)點擊左邊,右邊聯(lián)動的效果

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

    

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

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

試試吧~

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 城步| 武邑县| 呼伦贝尔市| 洛隆县| 翁牛特旗| 中牟县| 仁寿县| 陇南市| 吴堡县| 册亨县| 嘉荫县| 泰兴市| 龙川县| 云龙县| 芷江| 商洛市| 商丘市| 海伦市| 涞水县| 房产| 常德市| 桃源县| 嘉黎县| 东宁县| 四川省| 时尚| 于田县| 襄汾县| 永济市| 汪清县| 涡阳县| 陈巴尔虎旗| 竹溪县| 辉县市| 山阳县| 磴口县| 江永县| 财经| 通江县| 旬阳县| 海原县|