Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取计算高度-Javascript-非jQuery_Javascript_Height - Fatal编程技术网

获取计算高度-Javascript-非jQuery

获取计算高度-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

我有两个div并排设置为高度自动。我希望它们具有相同的高度,所以我将它们组合为一个数组的成员

我在数组中递归,并将非最高的数组设置为最高数组的高度。问题是我试图得到的所有计算高度都导致了不正确的值

我尝试了以下方法:

(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,并使他们同样高的基础上

  • 莫勒

如果您有DOM文档,可以尝试以下代码:

let divElement = document.getElementById('divId');
let height = document.defaultView.getComputedStyle(divElement).height;

计算后,“height”将具有具有“divId”的元素的确切高度

怎么样
outerHeight
?怎么样
getBoundingClientRect()
?是否有填充和/或边框?outerHeight未定义。不存在填充或边框。我尝试使用980的屏幕高度,这实际上产生了一些接近的结果。我打赌浏览器正在使用某种常量,然后根据屏幕大小调整大小。所以我得到的数字就是基于这个。我还没有尝试过这个方法,乔,看起来我要花一分钟的时间来弄清楚语法。