【发布时间】:2017-12-10 10:47:29
【问题描述】:
我想获取一个 div 的高度,以使另一个 div 的高度与之匹配。我使用了 clientHeight 方法,但它没有给我返回好的值(较小的值)。实际上,它似乎在所有元素都被充电之前返回了一个高度。 在网上进行了一些研究后,我尝试将 window.load() 延迟到所有费用都已收费,但效果不佳。一些想法?
mounted () {
this.matchHeight()
},
matchHeight () {
let height = document.getElementById('info-box').clientHeight
}
<div class="columns">
<div class="left-column" id="context">
<p>Some text</p>
</div>
<div class="right-column" id="info-box">
<img />
<ul>
some list
</ul>
</div>
</div>
【问题讨论】:
-
你能创建一个复制品吗?它似乎工作正常:jsfiddle.net/wostex/63t082p2/84(当然,如果你从你的方法返回高度,因为在你的代码中你什么都不返回)。
-
其实我的组件有很多行和方法。我在这里简化了。但我不明白为什么它返回的数字小于实际高度(检查元素时)。是加载问题吗?不应该在加载所有内容时运行该方法吗?
-
如果它在简单的情况下有效,但在有更多代码的情况下无效,那么很可能其他一些代码在加载过程中运行较晚并以这种方式修改 DOM至于改变高度。如果是这种情况,那么您需要在 DOM 修改代码执行后的加载过程中稍后调用 matchHeight 方法。
-
但是在加载组件的那一刻,mounted 是最后一步,不是吗?渲染后没有任何修改。它只是显示
标签: javascript html node.js vue.js vuejs2