要實現效果:一個y軸縱向列表,點擊列表的元素時,讓滾動條滾動,該元素定位到頂部
本來要實現這個其實是很簡單,但由於是小程序里的,都是邊摸索邊做,所以走了很多彎路,一直試圖用scroll-view的scroll-to-view屬性來實現,結果試了一直不行,
那么換個思路,小程序api里有這個屬性
wx.pageScrollTo(OBJECT)
點擊某元素時觸發頁面的滾動不就好了
把事件綁定在循環出來的列表元素上
頁面
<view wx:if="{{List.length!=0}}" wx:for="{{List}}" wx:key="item" wx:for-index="index" bindtap="toggle" data-index="{{index}}"> {{item.name}} </view >
js 打印出e發現e.currentTarget.offsetTop就是該元素的縱向偏移量,所以當點擊這個元素的時候,該元素就會滾動到頂部
toggle(e){ console.log(e) // 控制滾動 wx.pageScrollTo({ scrollTop: e.currentTarget.offsetTop, duration: 300 }) }