获取剪辑DIV的完整高度
我如何获得div的高度,其中包括div的剪辑区域?
<div style="height: 20px; overflow: hidden"> content<br>content<br>content<br> content<br>content<br>content<br> content<br>content<br>content<br> </div>
那么,你不能这样做,但是当你的容器中添加一个内部元素时可能是这样的:
<div id="element" style="height: 20px; overflow: hidden;"> <p id="innerElement"> <!-- notice this inner element --> content<br />content<br />content<br /> content<br />content<br />content<br /> content<br />content<br />content<br /> </p> </div>
旁注:包装段落内的内容也是一个很好的做法,再加上一个额外的元素是不是给了那么多的问题,如果有的话… …
和JavaScript:
var innerHeight = document.getElementById('innerElement').offsetHeight; alert(innerHeight);
PS对于这个JavaScript的工作,把它放在你的#element
div之后,因为如果没有指示的话,在DOM准备就绪之前执行普通的JavaScript。 为了在DOM准备就绪时进行这个工作, 请检查这个 。
但是我build议使用jQuery ,如果您要在您的网站中扩展JavaScript操作,稍后它会派上用场。
另外,jQuery是真正的力量 !
这样,只需将此脚本添加到<head />
(假设您已包含jQuery):
$(document).ready(function() { var innerHeight = $('#innerElement').height(); alert(innerHeight); });
示例@jsFiddle使用jQuery的方式!
这可以在任何情况下工作,不pipe你有一个文本节点还是一个容器。 这是使用jQuery,但你不需要。
//return the total height. totalHeight = $('#elem')[0].scrollHeight; //return the clipped height. visibleHeight = $('#elem').height();
//return the total height. totalHeight = $('#elem')[0].scrollHeight; //return the clipped height. visibleHeight = $('#elem').height();
$('#elem')[0]正在从jquery调用中返回dom元素。 所以你可以在任何使用简单的JavaScript'的dom elem上使用它。
使用费边理念,以下是一种实现您所需要的方法:
function GetHeight() { var oDiv = document.getElementById("MyDiv"); var sOriginalOverflow = oDiv.style.overflow; var sOriginalHeight = oDiv.style.height; oDiv.style.overflow = ""; oDiv.style.height = ""; var height = oDiv.offsetHeight; oDiv.style.height = sOriginalHeight; oDiv.style.overflow = sOriginalOverflow; alert("Real height is " + height); }
现场演示和testing案例: http : //jsfiddle.net/yahavbr/7Lbz9/
这不可能afaik。 你可以尝试的是删除这种风格,并设置它使用javascript后,你得到的高度。 不是最优雅的解决scheme,但我认为它是唯一的解决scheme。