在小程序中要實現(xiàn)錨點定位赠涮,需要使用到組件 scroll-view
需要用到的是 scroll-into-view
這條屬性,這條屬性的官網(wǎng)解釋是這樣的:
scroll-into-view
String
值應為某子元素id(id不能以數(shù)字開頭)斜友。設置哪個方向可滾動垃它,則在哪個方向滾動到該元素
于是乎,我們只需要給 scroll-view
內(nèi)要跳轉(zhuǎn)的 view
設置上 id
国拇,然后給 scroll-into-view
傳入要跳轉(zhuǎn)的 view
的 id
就行了
*注意:賦值時不能用等號 =
賦值贝奇,要使用 this.setData() 賦值虹菲,否則重復賦相同的值時不會跳轉(zhuǎn)
點我查看微信小程序代碼片段 wechatide://minicode/4OI2oNmQ722U
以下是源碼(和代碼片段的一樣)
wxml
<view class="btn_jump">
<view class='btn_item' bindtap='jumpTo' data-opt="item0">ToItem0</view>
<view class='btn_item' bindtap='jumpTo' data-opt="item11">ToItem11</view>
<view class='btn_item' bindtap='jumpTo' data-opt="item29">ToItem29</view>
</view>
<scroll-view class="jump_list"
scroll-into-view="{{toView}}"
scroll-y="true"
scroll-with-animation="true" >
<view wx:for="{{30}}" wx:key="{{item}}"
id="item{{item}}" class="list_item" >
{{item}}
</view>
</scroll-view>
wxs
Page({
data: {
},
onLoad: function () {
},
jumpTo: function (e) {
// 獲取標簽元素上自定義的 data-opt 屬性的值
let target = e.currentTarget.dataset.opt;
this.setData({
toView: target
})
}
})
wxss
page {
height: 100%;
}
.btn_jump {
position: fixed;
z-index: 9;
top: 30rpx;
right: 10rpx;
}
.btn_jump .btn_item {
border: 1rpx solid #aaa;
margin-bottom: 30rpx;
}
.jump_list {
position: relative;
height: 100%;
}
.list_item {
height: 80rpx;
}
.list_item:nth-of-type(even) {
background: #f8f8f8;
}