JavaScript:如何以编程方式确定网络“折叠”?

时间:2010-03-08 04:56:22

标签: javascript html browser

问题:如何以编程方式确定“折叠”(浏览器显示的垂直内容有多少)?

“折叠”定义为您无法再看到/必须滚动的位置。

我尝试使用JavaScript来确定浏览器窗口大小以确定折叠;不幸的是 - 这不好用,因为有些浏览器有标签等,即使你有两个相同大小的浏览器窗口 - 每个浏览器可能显示不同的垂直大小的内容。

2 个答案:

答案 0 :(得分:7)

window.innerHeight是当前可见的高度 document.height是网页的总高度。

  

“折叠”定义为您无法再看到/必须滚动的位置。

var fold = document.height - window.innerHeight;

修改:For IE developers。谢谢古德曼

答案 1 :(得分:3)

以跨浏览器兼容的方式确定窗口的高度与文档的高度有点复杂。 。 。不幸的是Internet Explorer does not support window.innerHeight。 。 。您可以使用document.body.clientHeightdocument.documentElement.clientHeight,但which one means what depends on the browser and version

从上面链接的后一个站点,这里有一个跨浏览器兼容的方法来获得window.innerWidth和window.innerHeight的等价物:

function alertSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth ||     document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight     ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  window.alert( 'Width = ' + myWidth );
  window.alert( 'Height = ' + myHeight );
}