使用Element.scrollIntoView()
详情情查看 scrollIntoView
参数
alignToTop可选
一个Boolean值:
如果为true,元素的顶端将和其所在滚动区的可视区域的顶端对齐。相应的 scrollIntoViewOptions: {block: “start”, inline: “nearest”}。这是这个参数的默认值。
如果为false,元素的底端将和其所在滚动区的可视区域的底端对齐。相应的scrollIntoViewOptions: {block: “end”, inline: “nearest”}。
scrollIntoViewOptions 可选
一个包含下列属性的对象:
behavior 可选
定义动画过渡效果, "auto"或 “smooth” 之一。默认为 “auto”。
block 可选
定义垂直方向的对齐, “start”, “center”, “end”, 或 "nearest"之一。默认为 “start”。
inline 可选
定义水平方向的对齐, “start”, “center”, “end”, 或 "nearest"之一。默认为 “nearest”。
具体方法:给需要跳转的位置标签添加一个id
goAnchor(selector) {
var anchor = this.$el.querySelector(selector) // 获取元素
if (anchor) {
setTimeout(() => { // 页面没有渲染完成时是无法滚动的,因此设置延迟
anchor.scrollIntoView({behavior: 'smooth'}) // js的内置方法,可滚动视图位置至元素位置
}, 500)
}
},
jump(val) { // 点击跳转的方法 val 你定义的需要跳转的标签id 此方法可以根据自己的实际情况编辑
this.goAnchor('#' + val)
}