vue的子元素在dom到顶部的距离
站长
· 阅读数 118
实现功能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