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

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

以上两步缺一不可

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

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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐