`
yiheng
  • 浏览: 156735 次
社区版块
存档分类

看图理解scrollTop,scrollLeft,clientWidth,clientHeight,offsetWidth,offsetHeight

 
阅读更多

每次用JS获取页面的高宽时总都是相当的揪心,同一个属性在不同的浏览器或不同的W3C标准下所表示的意思都不尽相同。以下就针对页面的实际高宽和可见区域做个总结,以便大家查阅!


1. W3C标准的情况下

W3C标准页面,即在HTML代码头部加入

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

IE中:
document.body.clientWidth ==> BODY
对象宽度
document.body.clientHeight ==> BODY
对象高度
document.documentElement.clientWidth ==>
可见区域宽度
document.documentElement.clientHeight ==>
可见区域高度

FireFox中:
document.body.clientWidth ==> BODY
对象宽度
document.body.clientHeight ==> BODY
对象高度
document.documentElement.clientWidth ==>
可见区域宽度
document.documentElement.clientHeight ==>
可见区域高度

Opera中:
document.body.clientWidth ==>
可见区域宽度
document.body.clientHeight ==>
可见区域高度
document.documentElement.clientWidth ==>
页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==>
页面对象高度(即BODY对象高度加上Margin高)



2. 在无W3C标准的情况下

即在HTML代码头部无

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

IE中:
document.body.clientWidth ==>
可见区域宽度
document.body.clientHeight ==>
可见区域高度
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0

FireFox中:
document.body.clientWidth ==>
可见区域宽度
document.body.clientHeight ==>
可见区域高度
document.documentElement.clientWidth ==>
页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==>
页面对象高度(即BODY对象高度加上Margin高)

Opera中:
document.body.clientWidth ==>
可见区域宽度
document.body.clientHeight ==>
可见区域高度
document.documentElement.clientWidth ==>
页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==>
页面对象高度(即BODY对象高度加上Margin高)



3. 附录 - 页面高宽的其他相关属性

<script>

var s = '';

s += "\r\n
网页可见区域宽:"+ document.body.clientWidth;
s += "\r\n
网页可见区域高:"+ document.body.clientHeight;
s += "\r\n
网页可见区域宽:"+ document.body.offsetWidth + " (包括边线和滚动条的宽)";
s += "\r\n
网页可见区域高:"+ document.body.offsetHeight + " (包括边线的宽)";
s += "\r\n
网页正文全文宽:"+ document.body.scrollWidth;
s += "\r\n
网页正文全文高:"+ document.body.scrollHeight;
s += "\r\n
网页被卷去的高(ff)"+ document.body.scrollTop;
s += "\r\n
网页被卷去的高(ie)"+ document.documentElement.scrollTop;
s += "\r\n
网页被卷去的左:"+ document.body.scrollLeft;
s += "\r\n
网页正文部分上:"+ window.screenTop;
s += "\r\n
网页正文部分左:"+ window.screenLeft;
s += "\r\n
屏幕分辨率的高:"+ window.screen.height;
s += "\r\n
屏幕分辨率的宽:"+ window.screen.width;
s += "\r\n
屏幕可用工作区高度:"+ window.screen.availHeight;
s += "\r\n
屏幕可用工作区宽度:"+ window.screen.availWidth;
s += "\r\n
你的屏幕设置是 "+ window.screen.colorDepth +" 位彩色";
s += "\r\n
你的屏幕设置 "+ window.screen.deviceXDPI +" 像素/英寸";

alert(s);

</script>


分享到:
评论

相关推荐

    HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth完全详解

    ### HTML:scrollLeft, scrollWidth, clientWidth, offsetWidth 完全详解 #### 一、scrollHeight 和 scrollWidth **scrollHeight** 和 **scrollWidth** 分别用来获取一个元素的滚动高度和滚动宽度。 - **...

    07-offsetHeight-scrollHeight-clientHeight-区别.md

    总结来说,offsetHeight和offsetWidth关注的是元素的边界,而clientHeight和clientWidth关注的是元素内容的大小,scrollHeight和scrollWidth关注的是元素内容的实际大小。理解这些概念,对于编写符合布局需求的CSS...

    scrollLeft,scrollTop等等详解[定义].pdf

    在软件开发中,特别是在Web开发领域,理解和使用`scrollLeft`、`scrollTop`以及相关的DOM元素属性至关重要。这些属性主要用于处理网页元素的滚动位置和尺寸,对于创建动态、响应式的用户界面有着重要的作用。 首先...

    document.body.scrollTop用法

    - 使用 `event.clientX` 和 `event.clientY` 获取鼠标相对于视口的位置,但若想得到相对于整个文档的位置,则需加上 `document.documentElement.scrollTop` 或 `document.documentElement.scrollLeft`。 ```...

    javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法

    总之,理解并熟练运用`offsetWidth`、`clientWidth`、`innerWidth`以及相关属性,能帮助开发者更好地操控DOM元素,实现丰富的网页交互功能。在编写JavaScript代码时,根据具体需求选择合适的属性,可以提高代码的...

    Js中 关于top、clientTop、scrollTop、offsetTop等

    此时,我们可以使用`offsetHeight`和`offsetWidth`来获取容器的完整尺寸,而使用`clientHeight`和`clientWidth`来获取容器的实际可视区域大小。同时,通过`scrollHeight`和`scrollWidth`我们可以知道容器中所有内容...

    JS获取各种宽度、高度的简单介绍

    需要注意的是,CSS中的margin属性与clientWidth、offsetWidth、clientHeight、offsetHeight等属性无关,因为margin表示的是元素外部的空间,而不影响元素本身的尺寸。 假设有一个HTML元素obj,它具有offsetTop和...

    获取页面元素实际宽高的属性的使用

    本文将详细介绍`clientWidth`、`clientHeight`、`scrollWidth`、`scrollHeight`、`offsetWidth`、`offsetHeight`等属性及其应用场景。 #### `clientWidth` 和 `clientHeight` - **定义**:`clientWidth`用于获取...

    JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)

    } else if (newY + this.offsetHeight &gt; clientHeight) { newY = clientHeight - this.offsetHeight; newScrollTop = Math.min(newScrollTop + newY, document.documentElement.scrollHeight - clientHeight); } ...

    js中的如何定位固定层的位置.docx

    但需要注意的是,对于IE5.5及更高版本,需要特别处理`document.body.scrollLeft`和`document.documentElement.scrollLeft`,以及`document.body.scrollTop`和`document.documentElement.scrollTop`,以确保在所有...

    js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动).docx

    documentElement.scrollTop + (documentElement.clientHeight - this.offsetHeight) / 2 : document.body.scrollTop + (document.body.clientHeight - this.clientHeight) / 2); } .content { background: #f3f3f3...

    javacript猎取当前屏幕大小_.docx

    对于浏览器兼容性问题,`clientWidth`、`clientHeight`、`offsetWidth`和`offsetHeight`在不同浏览器中可能有不同的计算方式。在IE6.0及更早版本,`clientWidth`和`clientHeight`会减去边框宽度,而在Firefox 1.0.6+...

    js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offsetWidth (包括边线的宽);网页可见区域高: document.body.offsetHeight (包括边线...

    JavaScript中的一些定位属性[图解]

    我们将以div元素为例,探讨clientHeight、clientWidth、offsetHeight、offsetWidth、clientTop、clientLeft、offsetTop、offsetLeft、scrollTop、scrollLeft和offsetParent这些属性。 clientHeight和clientWidth ...

    doctype后如何获得body.clientHeight的方法

    在ie6中很多js脚本执行就会出现问题,一般是在获取clientWidth, clientHeight,offsetWidth, offsetHeight,scrollWidth, scrollHeight,scrollTop, scrollLeft会返回不正确的值。 因为在加了doctype后,在ie6中...

    js获取屏幕分辨率的方法

    - `document.body.offsetWidth` 和 `document.body.offsetHeight` 分别表示网页可见区域的宽度和高度,包括了边线的宽度。 #### 定位相关的属性 对于精确定位的需求,JavaScript还提供了一系列属性来帮助开发者更...

    JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性

    例如,使用element.scrollLeft和element.scrollTop可以获取元素内容的水平和垂直滚动位置,这对于动态内容区域的管理是非常有用的。 在现代浏览器中,包括PC和移动端,这些DOM属性通常不存在兼容性问题,因此开发者...

Global site tag (gtag.js) - Google Analytics