javascript如何获得网页可见区域的高度(不包括被滚动条卷去的内容) 就是你能看到的网页内容的高度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript如何获得网页可见区域的高度(不包括被滚动条卷去的内容) 就是你能看到的网页内容的高度相关的知识,希望对你有一定的参考价值。

网页可见区域高度我知道
var clientHeight=document.body.clientHeight?document.body.client:document.documentElement.clientHeight
但是还要减去滚动条卷去的高度,在开始载入页面的时候这个值是0,有什么办法可以获得这个高度的,知道的请帮帮忙

你可以参考下面这个函数,这个函数是获取完整页面尺寸的函数(即你说的浏览器能看到的区域,不包括被滚动条卷去的区域)
-----------------------------js代码---------------------------------------------------------
<script>
function GetPageSize()
var xScroll, yScroll;
if (window.innerHeight && window.scrollMaxY)
xScroll = document.body.scrollWidth;
yScroll = window.innerHeight + window.scrollMaxY;
else if (document.body.scrollHeight > document.body.offsetHeight)
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
else
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;

var windowWidth, windowHeight;
if (self.innerHeight)
windowWidth = self.innerWidth;
windowHeight = self.innerHeight;
else if (document.documentElement && document.documentElement.clientHeight)
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
else if (document.body)
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;

if(yScroll < windowHeight)
pageHeight = windowHeight;
else
pageHeight = yScroll;

if(xScroll < windowWidth)
pageWidth = windowWidth;
else
pageWidth = xScroll;

arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize;

alert(GetPageSize());
</script>
参考技术A 没有写过相关的,看看下面的解释和内容能不能帮到你:
摘自:http://blog.sina.com.cn/s/blog_4678e7630100tjol.html
javascript中如何判断dom对象是否出现了滚动条,及滚动的数值:
  某些场景下需要用javascript去获取页面中的某个dom对象是否出现了滚动条,
  那么javascript的dom操作为我们提供了哪些方法可以得到呢?
  参考DHTML手册会发现:
  dom对象有offsetTop和 offsetLeft属性,
  它们所获得的值是当前滚动条所滚动的数值;
  当滚动条没有滚动或者没有出现的时候,
  这两个值都是0。
  dom对象还有属性:offsetHeight和 scrollHeight,
  offsetHeight是dom对象相对父级元素的可见高度,
  scrollHeight 是dom对象包含了滚动部分的高度。
  有了上述的四个基本属性,
  那么我们可以尝试进行判断(当然以下的判断是在没有设置css样式:overflow:hidden的情况下的):
  当dom对象offsetTop > 0的时候,说明滚动条已经存在了;
  另外,如果scrollHeight > offsetHeight即包含滚动部分的高度超出可视高度的时候,
  滚动条即已出现。
  综合上述两条可以得出以下结论:
  if (dom.offsetTop > 0 || dom.scrollHeight > dom.offsetHeight)
  //滚动条已出现
  
  当然,
  是不是只有这两个条件可以判断滚动条是否存在呢?
  如有朋友有更好的方法,可点击本文后面的“我要留言”给我留言,
  感谢赐教~
js获得滚动条位置
注意body的使用
function getScroll()

var t, l, w, h;
if (document.documentElement && document.documentElement.scrollTop)
t = document.documentElement.scrollTop;
l = document.documentElement.scrollLeft;
w = document.documentElement.scrollWidth;
h = document.documentElement.scrollHeight;

else if (document.body)
t = document.body.scrollTop;
l = document.body.scrollLeft;
w = document.body.scrollWidth;
h = document.body.scrollHeight;

return t: t, l: l, w: w, h: h ;

获取浏览器垂直滚动条向下滚动的像素
  关于js中 document.body.scrollTop 不能返回正确值的原因 收藏
  本来是为了通过 document.body.scrollTop来获取浏览器垂直滚动条向下滚动的像素,但是不管滚动条在什么位置总是返回是0,造成这样的原因和 html的头部声明有关,如果头部声明 为:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">,这样肯定得到的结果是 0,如果该为<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">就能得到正确的结果,对于第一种头部声明想要得滚动条的滚动的高度怎么办,解决方法有两种
  1、var scrollPos; if (typeof window.pageYOffset != 'undefined') scrollPos = window.pageYOffset; else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') scrollPos = document.documentElement.scrollTop; else if (typeof document.body != 'undefined') scrollPos = document.body.scrollTop;
  2、用document.documentElement.scrollTop 替代 document.body.scrollTop

转载实用的Javascript获取网页屏幕可见区域高度

本文转载原地址:这里

 

 1 document.body.clientWidth ==> BODY对象宽度  
 2 document.body.clientHeight ==> BODY对象高度  
 3 document.documentElement.clientWidth ==> 可见区域宽度  
 4 document.documentElement.clientHeight ==> 可见区域高度  
 5   
 6 网页可见区域宽: document.body.clientWidth  
 7 网页可见区域高: document.body.clientHeight  
 8 网页可见区域宽: document.body.offsetWidth (包括边线的宽)  
 9 网页可见区域高: document.body.offsetHeight (包括边线的高)  
10 网页正文全文宽: document.body.scrollWidth  
11 网页正文全文高: document.body.scrollHeight  
12 网页被卷去的高: document.body.scrollTop  
13 网页被卷去的左: document.body.scrollLeft  
14 网页正文部分上: window.screenTop  
15 网页正文部分左: window.screenLeft  
16 屏幕分辨率的高: window.screen.height  
17 屏幕分辨率的宽: window.screen.width  
18 屏幕可用工作区高度: window.screen.availHeight  
19 屏幕可用工作区宽度: window.screen.availWidth  
20   
21 // 部分jQuery函数  
22 $(window).height()  //浏览器时下窗口可视区域高度   
23 $(document).height()    //浏览器时下窗口文档的高度   
24 $(document.body).height()      //浏览器时下窗口文档body的高度   
25 $(document.body).outerHeight(true) //浏览器时下窗口文档body的总高度 包括border padding margin   
26 $(window).width()  //浏览器时下窗口可视区域宽度   
27 $(document).width()//浏览器时下窗口文档对于象宽度   
28 $(document.body).width()      //浏览器时下窗口文档body的高度   
29 $(document.body).outerWidth(true) //浏览器时下窗口文档body的总宽度 包括border padding  
30   
31 HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth   
32 scrollHeight: 获取对象的滚动高度。   
33 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离   
34 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离   
35 scrollWidth:获取对象的滚动宽度   
36 offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度   
37 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置   
38 offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置   
39 event.clientX 相对文档的水平座标   
40 event.clientY 相对文档的垂直座标   
41 event.offsetX 相对容器的水平坐标   
42 event.offsetY 相对容器的垂直坐标   
43 document.documentElement.scrollTop 垂直方向滚动的值   
44 event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量  

以上是关于javascript如何获得网页可见区域的高度(不包括被滚动条卷去的内容) 就是你能看到的网页内容的高度的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript——获取网页屏幕可见区域高度

转载实用的Javascript获取网页屏幕可见区域高度

JavaScript - 获取高度

(知识点)JavaScript中获取网页高度

JavaScript获取页面宽度高度大全

javascript中获取dom元素高度和宽度