element ui table scrollTop 滚动到行头或行尾

element ui table 添加数据行后滚动条滚动到对应的行头或行尾问题

滚动到第一行:
this.$refs.table.bodyWrapper.scrollTop =0;
滚动到最后一行:
this.$refs.table.bodyWrapper.scrollTop =this.$refs.table.bodyWrapper.scrollHeight;

在网上看到上面这种解决方案,但是自己实验了一下,发现不行,请问是什么原因?

------------------------------------------------------分界线-----------------------------------------------

后续进展:
我改成

this.$nextTick(() => {
  let scrollHeight = this.$refs.table.bodyWrapper.scrollHeight
  this.$refs.table.bodyWrapper.scrollTop = scrollHeight
})

就能设置成功了,但总是滚动到离底部差一点的地方。
我查了一下,bodyWrapper.scrollHeight等于1256,max-height是659,所以一般设置成1256-659=597就能保证滚动条滚动到底部,但是我设置完成之后打印出来的bodyWrapper.scrollTop是567,所以总是滚动到离底部差一点的地方,这是为何呢?

阅读 10.4k
3 个回答

没用过,具体要看你怎么写的:

    1.<el-table ref="table">  // 要有ref属性
    2. this.$refs.table.bodyWrapper.scrollTop  //这句话你写在哪里吗  要确保this.$refs.table获取到<el-table>了
新手上路,请多包涵

过来还愿,setup模式下,滚动到最后一行只要设置一个你无论都达不到的最大的数就行了,不用算来算去。

  tableRef.value?.$nextTick(()=>{
    // 想了半天不知道怎么滚动到最后一行,最后决定给一个无限大的数,完美解决
      tableRef.value!.scrollTo(0,9999)
    }
  )
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题