微信小程序實現錨點定位功能的方法實例_第1頁
微信小程序實現錨點定位功能的方法實例_第2頁
微信小程序實現錨點定位功能的方法實例_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

功能實現

采用小程序視圖容器組件實現: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是根據不同機型的高度動態計算出來的,scroll-view有個重要屬性:scroll-into-view,它接收一個string值,即為滾動的地點(錨點),那么我們需要在scroll-view子節點也設置相應的錨點列表:如上圖的>

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

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

關鍵代碼:

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為所有錨點塊所占頁面高度的數組總和,用圖可以看得更加清晰一點:

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

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

關鍵代碼:

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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論