微信小程序?qū)崿F(xiàn)錨點定位功能的方法實例_第1頁
微信小程序?qū)崿F(xiàn)錨點定位功能的方法實例_第2頁
微信小程序?qū)崿F(xiàn)錨點定位功能的方法實例_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第微信小程序?qū)崿F(xiàn)錨點定位功能的方法實例在小程序開發(fā)中,我們經(jīng)常會遇到滾動列表查看的需求,那么使用錨點定位來實現(xiàn)可以達到交互體驗更加友好的效果,我們看下項目中實現(xiàn)的效果:

功能實現(xiàn)

采用小程序視圖容器組件實現(xiàn):scroll-view

這里需要注意的是,豎向滾動時,scroll-view需要指定一個固定高度,我們看下WXML代碼:

scroll-viewscroll-yscroll-into-view="{{toView}}"scroll-with-animation="{{true}}"bindscroll="handelScroll"

blockwx:for="{{dataList}}"wx:key="{{index}}"

viewid="{{item.floor}}"

/view

/block

/scroll-view

這里autoHeight是根據(jù)不同機型的高度動態(tài)計算出來的,scroll-view有個重要屬性:scroll-into-view,它接收一個string值,即為滾動的地點(錨點),那么我們需要在scroll-view子節(jié)點也設(shè)置相應(yīng)的錨點列表:如上圖的>

當(dāng)我們滾動列表的時候,頂部的高亮篩選項也需要對應(yīng)切換,那這個時候怎么辦呢?

我們可以在bindscroll此事件上做文章:滾動列表的時候會觸發(fā)此事件。

關(guān)鍵代碼:

handelScroll(e){

letscrollTop=e.detail.scrollTop;

letscrollArr=this.data.anchorArray;

if(scrollTop=scrollArr[scrollArr.length-1]-this.data.autoHeight){

return;

}else{

for(leti=0;iscrollArr.length;i++){

if(scrollTop=0scrollTopscrollArr[0]){

//selectFloorIndex控制篩選塊高亮顯示

this.setData({

selectFloorIndex:0

}elseif(scrollTop=scrollArr[i-1]scrollTopscrollArr[i]){

this.setData({

selectFloorIndex:i

這里的anchorArray為所有錨點塊所占頁面高度的數(shù)組總和,用圖可以看得更加清晰一點:

每個錨點塊都有一個固定的高度,我們在拿到數(shù)據(jù)渲染完頁面后,可以通過

boundingClientRect方法拿到類名為floorType各個節(jié)點的高度,并將這些高度裝進anchorArray數(shù)組中,那么當(dāng)我們滾動超過某塊錨點高度之后,頂部篩選項也會隨之切換到下一個。

關(guān)鍵代碼:

letquery=wx.createSelectorQuery().in(this);

letheightArr=[];

leth=0;

query.selectAll('.floorType').boundingClientRect((react)={

react.forEach((res)={

h+=res.height;

heightArr.push(h)

this.setData({

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論