页面总高度
我正在尝试使用JavaScript和jQuery获取页面的总高度,因此我可以检查页面是否足够长以显示某些内容,但是在我的测试中,我无法获得页面的总高度。
我在互联网上环顾四周,但这样的事情似乎没有很好的记录,因为我所能找到的只是scrollHeight
,正如我可能提到的那样,它不起作用。
有没有办法用jQuery找到它?
没有框架:
var _docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight; var _docWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth;
你试过$(document).height();
?
在这里演示
document.documentElement.scrollHeight
在最新版本的Internet Explorer,Chrome,Firefox和Safari中对我有效。
整页高度……
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;
本文可能对您有所帮助。
也许使用页面底部元素的位置,如:
$("#footer").offset().top
要查找整个文档的高度,您可以通过简单的递归找到当前页面上最高的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
。
请享用!
看看文档 。 支持的方法之一:height,innerHeight,outerHeight可能适合您。