猿问

在$nextTick中获取DOM高度的问题

再做一个滚动的功能,需要获取到被滚动元素的高度
代码如下

    created() {

      this.titleid = this.$route.params.titleid

      this.communityid = this.$route.params.communityid

      this.TOPIC_LOADORDERBY({titleid: this.titleid, communityid: this.communityid})

       this.$nextTick(function () {

           // DOM 现在更新了

           // `this` 绑定到当前实例

           this._initScroll()

           let self = this;

               console.log(self.$refs.scorll.clientHeight)

               console.log(self.$refs)

               let height = self.$refs.scorll.clientHeight - self.$refs.topicReply.clientHeight;

                self.meunScroll.scrollTo(0, -height,0)


        })

我发现得到的值并不是实际高度的值,最初我怀疑是不是数据没有渲染进去,于是查看了一下DOM中属性的值,发现内容都是有的,就连clientHeight的值也是我需要的准确的值,但是不知道为什么我获取clientHeight值的时候却并不是我想要的,我尝试了使用定时器,但是结果还是一样的当时间只有在1000的时候才能获取到确切的高度;

LEATH
浏览 1224回答 1
1回答

翻阅古今

在created的钩子函数中,模板还没渲染好,试试mounted
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答