vue3怎么获取元素的offsetTop?

如下使用ref获取到直接拿offsetTop是undefined,请问这个应该怎么拿

<a-table :columns="dataSource.columns" :data-source="dataSource.data" ref="tableRef"></a-table>
 if (tableRef.value) {
    nextTick(() => {
      console.log(tableRef)
      debugger;
    })
  }

image.png

阅读 5.9k
2 个回答

offsetTop是dom元素上的属性,如果ref是在组件上,那么获得的值是组件实例,此时获取dom需要读取实例的$el属性
https://cn.vuejs.org/guide/es...

加一个nextTick试一下

 if (tableRef.value) {
   nextTick(() => {
        console.log(tableRef.value.offsetTop)
        console.log(tableRef.value.table.offsetTop)
   })
 }

刚看到你这好像是个组件,那建议先把tableRef.value打印出来,然后一层一层的翻一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题