【发布时间】:2014-06-17 01:25:30
【问题描述】:
有没有一种优雅的方法可以预测元素的尺寸在元素转换完成后完成?
例子:
HTML:
<div id="demo">...</div>
CSS:
#demo {
max-height: 0;
overflow:hidden;
transition: 2s max-height;
}
#demo.expand {
max-height: 1000px;
}
JS:
var demo = document.getElementById('demo');
demo.className = 'expand';
// Unfortunately the result will be 0px
// because the current height is measured
alert(demo.offsetHeight);
演示:
【问题讨论】:
-
我并不完全清楚您要做什么。为什么
max-height? -
是的,我知道这是一种解决方法,但您实际上想做什么?所以,我想我是在问“你为什么需要高度?”
-
我想知道这是否是 element.getBoundingClientRect() 的工作。你能在我们可以测试的地方做一个小提琴吗?
-
我想我现在明白你的问题了。我猜你不想“测量尺寸”,但你想在元素放置在屏幕上之前“预测尺寸”。对吗?
-
好的,所以这会有点困难 - 你必须知道 div 的特性,做一些计算,并希望 div 在位置时不会改变大小.昨晚我正在考虑在很短的时间内打开 div(在页面的位置或不同的较远部分),进行测量,然后在隐藏它后移动到正确的位置。也许如果您在加载之前告诉我们为什么需要测量,我们或许可以想出不同的策略。
标签: javascript jquery html css