页面总高度
问题描述:
我想要使用JavaScript和jQuery获取页面的总高度,这样我就可以检查页面是否足够长以显示某些内容,但是在我的测试中,我无法获取总高度的页面。页面总高度
我在互联网上浏览过,但这样的事情似乎没有很好的记录,因为我可以找到的是scrollHeight
,正如我所提到的,它不起作用。
任何方式来使用jQuery来找到它?
答
如果没有一个框架:
var _docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
var _docWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth;
答
也许使用元素的位置在页面的底部,如:
$("#footer").offset().top
答
身高整个页面的...
document.body.offsetHeight
视口高度...
var h;
if(self.innerHeight)
h = window.innerHeight
else if(document.documentElement && document.documentElement.clientHeight)
h = document.documentElement.clientHeight;
else if(document.body)
h= document.body.clientHeight;
This article可能会帮助你。
答
document.documentElement.scrollHeight
对于我在最新版本的Internet Explorer,Chrome,Firefox和Safari中正常工作。
答
要找到高度整个文档你可以只找到当前页面上的最高DOM节点用一个简单的递归:
;(function() {
var pageHeight = 0;
function findHighestNode(nodesList) {
for (var i = nodesList.length - 1; i >= 0; i--) {
if (nodesList[i].scrollHeight && nodesList[i].clientHeight) {
var elHeight = Math.max(nodesList[i].scrollHeight, nodesList[i].clientHeight);
pageHeight = Math.max(elHeight, pageHeight);
}
if (nodesList[i].childNodes.length) findHighestNode(nodesList[i].childNodes);
}
}
findHighestNode(document.documentElement.childNodes);
// The entire page height is found
console.log('Page height is', pageHeight);
})();
注意:它正在与Iframes
。
享受!
这给出了一个错误。 – 2009-07-06 16:59:43
作品对我来说http://pastebin.me/4a52303ca45de - 请确保您有Firefox的萤火虫+打开控制台这 – redsquare 2009-07-06 17:12:08