vue的子元素在dom到顶部的距离
实现功能json比对,然后点击跳转到上一个,下一个不同的地方
获取元素然后让其滚动条滚动到该元素的位置
这里踩过两个坑:
document.documentElement.scrollTop = 元素.scrollTop
1.元素若是子元素,应该拿到相对于他的父元素的srcollTop
offsetTop (element) {
var Top = element.offsetTop;//得到第一层距离
var parent = element.offsetParent;//得到第一个父元素
while (parent !== null) {//如果还有上一层父元素
Top += parent.offsetTop;//把本层的距离累加
parent = parent.offsetParent;//得到本层的父元素
}//然后继续循环
return Top;
}
2.滚动的元素必须是滚动条的元素,document.documentElement.scrollTop这个没有效果 //获取多级父元素拿到子元素的距离顶部,这里是根据自己的项目拿到滚动条的元素,我这里是main这个有滚动条。 document.querySelector(".main").scrollTop = this.offsetTop(del[this.index]) - 150
转载自:https://juejin.cn/post/7110396543999410183