三剑客:offset、client和scroll还傻傻分不清?

2022-07-26,,,,

在学习前端的过程中,我们经常会碰到offset, client与scroll,所以我就把它们称作为‘三剑客'。

01  offset - 偏移量

定义:元素在屏幕上占用的所有的可见的空间。

元素可见的大小由其高度、宽度决定,包括所有内边距,滚动条和边框大小四个属性

offset

css的样式:

html部分:

offsetheight:

元素正在垂直方向上占用的大小空间,px,元素的高度,水平滚动条的高度 + 上边框高度

offsetwidth:

元素在垂直方向上占用的大小空间,px,元素的宽度,垂直滚动条的宽度,左右边框的宽度

offsetwidth,offsetheight

offsetleft:

元素的左外边框至包含元素的左内边框之间的像素距离

offsettop

元素的上外边框至包含元素的上内边框之间的像素距离

offsetparent:

offsetleft与offsettop属性与包含元素有关,包含元素的引用保存在offsetparent属性中

offsetparent属性不一定与parentnode的值相等其实就是看看父元素们是否都有position:定位属性

当我们去修改某一个父元素的position的时候发生了这样的变化

offsetleft与offsettop的值不一样了

这样我们就可以封装成一个方法,一直到获取最顶层的距离

02  客户区  client

client

元素的客户区大小(client dimension)指的是元素内容及其内边距所占距的空间大小

clientwidth:

元素内容区宽度 + 左右内边距宽度

clientheight:

元素内容区高度 + 山下内边距高度

我们可以用来获取浏览器视口大小代码如下

03 scroll 滚动条的大小

我们一般看到的默认滚动条的宽度是17px;

滚动大小:指的是包含滚动内容的元素的大小

scroll

scrollheight: 在没有滚动条的情况下,元素内容的总高度

scrollwidth:在没有滚动条的情况下,元素内容的总宽度

html部分

js打印:

此时返回的结果是120  在没有滚动条的情况下(子元素内容未超出的情况)

内容超出的情况

html部分

js部分:

scrollleft: 被隐藏在内容区域左侧的像素值,通过设置这个属性可以改变元素的滚动位置

scrolltop:被隐藏在内容区域上方的像素值,通过这个属性可以改变元素的滚动位置

scrollwidth和scrollheight主要用于确定元素内容的实际大小

以上就是我们的‘三剑客'啦,不用再傻傻分不清啦!

参考资料:《高级语言程序设计》

到此这篇关于三剑客:offset,client和scroll的文章就介绍到这了,更多相关offset,client和scroll内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

《三剑客:offset、client和scroll还傻傻分不清?.doc》

下载本文的Word格式文档,以方便收藏与打印。