javascript – 获取div的非溢出部分的高度

前端之家收集整理的这篇文章主要介绍了javascript – 获取div的非溢出部分的高度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
说我有一个溢出的包装div:隐藏在它和一个div,远远超出可见部分的div.如何获得内部div的可见高度?
<div id="wrapper" style="overflow: hidden; height:400px;">
    <div id="inner">
        <!--Lots of content in here-->
    </div>
<div>

尝试尝试获取内部div的高度的每种方法都会返回完整的高度,包括隐藏的部分,即2000px.我想要获得只有可见部分的高度,所以在这个例子中为400px.

我知道我可以得到parentNode的高度,但在生产中,内部div可能不是第一个孩子.所以可能会有其他div分开他们,所以#inner的高度将是400 – 无论它和#wrapper之间的元素的偏移.

解决方法

作为基本算法,这可以起作用:
var offset=0;
var node=document.getElementById("inner");
while (node.offsetParent && node.offsetParent.id!="wrapper")
{
    offset+=node.offsetTop;
    node=node.offsetParent;
}
var visible=node.offsetHeight-offset;

但是,如果你正在做这些事情,也许你已经使用了jQuery,它可能与.height()和.offset()函数一起使用:

$("#wrapper").height()-
$("#inner").offset()['top']+
$("#wrapper").offset()['top'];

猜你在找的JavaScript相关文章