关闭

clientWidth/scrollWidth/offsetWidth

153人阅读 评论(0) 收藏 举报
分类:
1.
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下
2.
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下

clientWidth是对象看到的宽度(不含边线)
scrollWidth是对象实际内容的宽度(若无padding,那就是边框之间距离,如有padding,就是左padding和右padding之间距离)。
offsetWidth是指对象自身的宽度,整型,单位像素(含边线,如滚动条的占用的宽,值会随着内容的输入而不断改变)。 


首先,单纯从页面显示的角度来说,
IE和FF的和模型的现实宽度/高度,都等于width+padding+border+margin宽度/高度总和
但是在元素的属性里,FF仍然是本身width属性的宽度,而IE的width属性是width+padding+border+margin宽度/高度总和

另外,偶然得出一个结论,一个box设置了宽度width的数值,那么他的实际上视觉宽度就是width+padding+border,三者之和,也就是说,边框宽度不包括在width之中,所以width设置为100;padding为0;border为10×2,那么视觉宽度就是120px;

3.

总结了一个晚上,通过对IE DevToolbar和Firebug的观察,画出了这两幅图,以区别offsetWidth clientWidth scrollWidth scrollTop scrollLeft等属性的细微差别,希望对各位写js有所帮助!

第一幅图中oEvent是一个时间发生时的一个参数对象,在IE和FF中的获得方法就不用多说了吧。整个 大背景是这个网页的全部尺寸,中间的小框才是浏览器中的可见尺寸。 这幅图就是针对为文档(document)的各个height、width、top、left所做的说明。
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下
4.

第二幅图主要是针对网页中一个div的各个属性值所做的说明。“DIV element client area”是这个div元素的可见区域,“scroll area”是这个div内容原始尺寸,但是由于div的css所设置的高度宽度容不下它的内容,所以出现滚动条。

(页面宽度有限,图片可能不会显示完全,最好新开窗口打开图片)
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下

5.
clientWidth/scrollWidth/offsetWidth <wbr>小小总结一小下

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
以上主要指IE之中,FireFox差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)


网页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;

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

网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;

网页被卷去的高: document.body.scrollTop;
网页被卷去的左: document.body.scrollLeft;

网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;

屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;

屏幕可用工作区高度: window.screen.availHeight;
屏幕可用工作区宽度:window.screen.availWidth;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:29334次
    • 积分:357
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:46篇
    • 译文:0篇
    • 评论:0条