最近有个移动端需求,头部高度自适应,其实这个比较简单,但是头部自适应的同事需要固定在顶部,问题来了,如果不知道头部高度,下面元素的padding-top值就没办法给,如果不给的话,头部固定在顶部,下面元素的内容就会盖住。
大家都知道vue的钩子函数mounted,是dom树挂载后执行的钩子函数,直接在这执行获取头部高度的方法就可以,vue获取元素的方法有很多种,这里就不多说,
我用的是 this.$refs.fixedTop.offsetHeight,但是用完之后发现一个问题,头部字段较长的话,高度是自动撑开了,但是如果直接拿this.$refs.fixedTop.offsetHeight,给下面元素当padding-top值,发现还是会盖住,经查发现确实是在dom挂载后执行的方法,但是头部内容是异步请求回来更新的,所以高度还是不对,所以最好直接在异步成功返回里面写
this.$nextTick(() => {
this.height = this.$refs.fixedTop.offsetHeight
console.log('标题高度')
console.log(this.height)
})
这样就能解决了。