首先,通过this.$refs.target获取组件元素,然后针对不同的元素类型,使用不同的获取位置的方法
let elm = this.$refs.target
if(!elm.$el){
// 如果是原生标签,使用
elm.getBoundingClientRect().top // 获取当前元素与viewport上边的距离
elm.getBoundingClientRect().bottom // 获取当前元素与viewport下边的距离
elm.getBoundingClientRect().left // 获取当前元素与viewport左边的距离
elm.getBoundingClientRect().right // 获取当前元素与viewport右边的距离
}else{
// 如果是vueComponent,使用
elm.$el.offsetTop // 获取当前元素与viewport上边的距离
elm.$el.offsetBottom
elm.$el.offsetLeft
elm.$el.offsetRight
}