做一个项目,不管是取这个元素的scrollTop,还是主动设置一个元素的scrollTop;都不生效,我也找了很多文章,最后找到了scrollTop无效的关键问题所在了:

确保该元素满足以下几个条件:
1. 确保在获取该元素时,元素一定有高度height;
2.确保该元素的overflow为auto或者scroll;

以上两步缺一不可

请确保在获取这个元素的时候有高度,
也就是说你要在数据请求过来后,元素被撑开一定高度后,再去重新获取元素。再设置它的scrollTop。
vue的话记得用以下代码辅助你找到最新的DOM:

this.$nextTick(() => {
// 获取父盒子(肯定有滚动条)
  var parent = document.getElementById('parent')
  parent.scrollTop = 0 // 这个时候设置scrollTop的值绝对生效
})
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐