正文

主要是用scrollIntoView函数,但是当页面有吸顶的header时定位到锚点的时候header会盖住一部分,scrollIntoView函数没办法直接解决这个问题,这里的破题思路是直接滚动一下页面的滚动条,让它往下滚动一点点,代码如下

1
2
3
4
5
6
7
8
jumpAnchor (anchor) {
if (this.$refs[anchor]) {
this.$refs[anchor].scrollIntoView(true)
this.$nextTick(() => {
document.documentElement.scrollTop = -130 + this.$refs[anchor].offsetTop
})
}
}

总结

解决这个问题的时候思路一度陷入用scrollIntoView函数解决问题的僵局,但是scrollIntoView函数根本就不支持解决这个问题。要做到善用工具,打开思路。