在微信小程序中,使用 scroll-view 实现长页面的标记跳转,官方文档中没有例子演示,锚点标记主要是使用<scroll-view> 的 scroll-into-view 属性。
实现锚点跳转主要以下几点:
1、最外层容器使用 scroll-view
2、赋值scroll-into-view,如:<scroll-view scroll-into-view="{{toView}}">
3、设置 scroll-view 滚动方向 scroll-y="true"
4、跳转到的位置使用 id (定位),如:<view id="mark1">
.wxml代码
<view class="list">
<view bindtap='jumpTo' data-opt="list0">list0</view>
<view bindtap='jumpTo' data-opt="list11">list11</view>
<view bindtap='jumpTo' data-opt="list29">list29</view>
</view>
<scroll-view scroll-into-view="{{toView}}" scroll-y="true" scroll-with-animation="true" class="scr">
<view wx:for="{{list}}" id="{{item}}" class="test">
{{item}}
</view>
</scroll-view>
.wxss代码
.scr{
position: relative;
height: 500rpx
}
.test{
height: 80rpx;
}
.list{ position: fixed; z-index: 9; top:30rpx; right: 10rpx; }
.js代码
data: {
list: ["list0", "list1", "list2", "list3", "list4", "list5", "list11", "list12", "list13", "list14", "list15", "list25", "list26", "list27", "list28", "list29","list30"],
toView: ''
},
jumpTo: function (e) {
// 获取标签元素上自定义的 data-opt 属性的值
let target = e.currentTarget.dataset.opt;
this.setData({
toView: target
})
},
小程序锚点跳转和HTML锚点跳转类似
ps: 如果使用 html 实现锚点跳转,只需要使用 <a href="#id名"> 就能很方便的跳转到改元素的位置,id名就是对应要跳转的位置!