博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS-元素大小深入学习-offset、client、scroll等学习研究笔记
阅读量:5877 次
发布时间:2019-06-19

本文共 1215 字,大约阅读时间需要 4 分钟。

一些属性和方法,在dom中没有规定如何确定页面中元素大小的情况下诞生。。。

1.偏移量(offset dimension)

 测试代码:

 

1  2  3      4         
5 offset偏移量学习 6
7 20 21 22
23

24
25 26

 

js代码:

1 

 

获取理论结果:

//offsetWidth  包括padding和border,不包括滚动条,滚动条是默认在宽度中的。

几种情况——

//加了boxsizing的情况:  offsetWidth值  =  style的宽度值,
//不加boxsizing的情况 :   offsetWidth值  =  style中的宽度  +  padding左右值  +  border左右值。

//有无滚动条不受影响

//height同理

以上理论,经测在谷歌和火狐中都适用。

offsetLeft 和 offsetTop

offsetLeft/offsetHeight是元素的左边框/上边框到其最近的、具有大小的元素左边框/上边框的距离。

具体值还是取决于他的offsetParent。

心中有个概念,但是最终解释还是看不同情况下的结果:

 2.客户区大小(client dimension)

指的是元素内容及其内边距所占据的空间大小,从字面上看,客户区大小就是元素内部的空间大小,因此滚动条占用的空间不计算在内【js高级程序设计文摘】

测试offsetWidth顺便测试的clientWidth的

 

clientWidth  永远会减去滚动条的尺寸和border的尺寸,只包括内容和padding的。!! 即使加了box-sizing=border-box也不包括border,

 

几种情况——

//加了box-sizing:   clientWidth值就是  =  style中的宽度 - border宽度,
//不加box-sizing:   clientWidth值就是  =  style中的宽度 + padding左右值。
//有滚动条情况:clientWidth值  =  (style中的宽度 + padding左右值)- 17px(滚动条的宽度值);
//滚动条加box-sizing情况:  clientWidth值  =  style中的宽度 - 17px(滚动条的宽度值)- border的左右宽度值

 

//height同理

 

以上理论,经测在谷歌和火狐中都适用。

3.scrollHeight(client dimension)

 scrollHeight返回元素的完整的高度,以像素为单位

转载于:https://www.cnblogs.com/padding1015/p/6737363.html

你可能感兴趣的文章
HTTP 响应
查看>>
Android显示GIF图片
查看>>
区分SQL Server关联查询之inner join,left join, right join, full outer join并图解
查看>>
mysql日志详细解析
查看>>
HttpClientUtil
查看>>
SQL 语句转换格式函数Cast、Convert
查看>>
Caused by: java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC
查看>>
深度|余凯:基于深度学习的自动驾驶之路
查看>>
十几个remote control software
查看>>
重量级框架
查看>>
导入Mybatis_Spring项目遇到的问题
查看>>
ERP入门
查看>>
【转】@Override must override a superclass method 问题解决
查看>>
统一认证系统(三)
查看>>
CentOS6.5安装完没有网络的解决办法
查看>>
利用Nodejs & Cheerio & Request抓取Lofter美女图片
查看>>
django 部署到 apache
查看>>
crontab命令
查看>>
为什么要使用云盘?
查看>>
spring依赖注入单元测试:expected single matching bean but found 2
查看>>