获取计算高度-Javascript-非jQuery
我有两个div并排设置为高度自动。我希望它们具有相同的高度,所以我将它们组合为一个数组的成员 我在数组中递归,并将非最高的数组设置为最高数组的高度。问题是我试图得到的所有计算高度都导致了不正确的值 我尝试了以下方法:获取计算高度-Javascript-非jQuery,javascript,height,Javascript,Height,我有两个div并排设置为高度自动。我希望它们具有相同的高度,所以我将它们组合为一个数组的成员 我在数组中递归,并将非最高的数组设置为最高数组的高度。问题是我试图得到的所有计算高度都导致了不正确的值 我尝试了以下方法: (els[x].currentStyle) ? h=els[x].currentStyle.height : h=window.getComputedStyle(els[x],null).height; h = el.clientHeight || el.offsetHeigh
(els[x].currentStyle) ? h=els[x].currentStyle.height : h=window.getComputedStyle(els[x],null).height;
h = el.clientHeight || el.offsetHeight || el.scrollHeight;
这两个都产生640像素,而在我的特别展示中,计算值是751.8
有没有可能用一个常数来获得正确的高度。比如我得到的数字可能会出现在一个标准大小的屏幕上(比如960像素高或者差不多),然后乘以窗口大小?我已经很好地使用了这个我想出的小功能
function getH(id)
{
return document.getElementById(id).offsetHeight;
}
// I have a styles.js file where this function feels right at home. Access this function from anywhere.
这将返回给定给函数的任何给定元素的高度(通过其ID)。所以现在我们已经走了三分之一的路
然后使用Math.max()函数获取最大元素的高度
var maxH = Math.max(getH("ID1"),getH("ID2"));
这是方式的2/3,耶-现在将元素高度设置为相同
var x = document.getElementById("ID1");
var y = document.getElementById("ID2");
x.style.height = maxH +"px";
y.style.height = maxH +"px"; //Remember the +"px" has to be added as a string, thats the reason for the "".
完成现在把它们放在一起
我会想象这样的事情
function setElementHeight()
{
var maxH = Math.max(getH("ID1"),getH("ID2"));
var x = document.getElementById("ID1");
var y = doc...("ID2");
x.style.height = maxH +"px";
y.style.height = maxH +"px";
}
// Don't forget to include the first function in you'r .js file
这会将两个ID设置为相同的高度,并且高度将等于最高的ID。这就是你想要的,不是吗
--编辑--
如果我是你,我会扔掉这个阵列。只要有两个DIV的每个唯一的ID,并使他们同样高的基础上
- 莫勒
let divElement = document.getElementById('divId');
let height = document.defaultView.getComputedStyle(divElement).height;
计算后,“height”将具有具有“divId”的元素的确切高度 怎么样
outerHeight
?怎么样getBoundingClientRect()
?是否有填充和/或边框?outerHeight未定义。不存在填充或边框。我尝试使用980的屏幕高度,这实际上产生了一些接近的结果。我打赌浏览器正在使用某种常量,然后根据屏幕大小调整大小。所以我得到的数字就是基于这个。我还没有尝试过这个方法,乔,看起来我要花一分钟的时间来弄清楚语法。