client/offset/scroll等属性不明白(看这就够了)
前言
我们在移动端的开发过程中,经常会碰到需要获取移动端节点宽高的情况,但是像offsetHeight,offsetTop,clientHeight,clientTop等属性又非常容易混淆,也没法单从单词识别出具体代表什么,笔者曾经想要通过单词来区分,但是当我打开度娘,搜索“clientHeight什么意思”的时候,我只得到了如下的答案(图除了马赛克,没有ps)。我看不懂,但是我大受震撼!从此我放弃了从单词进行识别的想法。
文章图片
今天我们来重新梳理一遍,画了几张图,希望能够让我和你对这些宽高能有一个较为清晰的认识。
说明
- body返回的是body节点,即
- documentElement返回文档的root节点,即\,在文档类型申明(DTD,Document Type Definition)后使用
- 为了兼容一般写成:
// 例子: const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
- 本篇文章为了描写方便,统一使用body来表达
- 为了兼容一般写成:
- clientHeight
- clientWidth
- clientTop
- clientLeft
文章图片
offset 相关的属性 offset的意思为“偏离、位移”,在js中也有一系列的属性。
- offsetHeight
- offsetWidth
文章图片
- offsetTop
- offsetLeft
文章图片
scroll 相关的属性
- scrollTop
返回元素被卷去的高度,或者说已滑动的距离,可写属性(只在有滚动条的情况下有值,否则其值为0 - scrollHeight
返回获取元素对象内容的实际高度,包括溢出部分的内容
文章图片
参考资料
- https://developer.mozilla.org...
然后本期对宽高的介绍就到这里了,其实还有一些比如screen.height,availheight,innerHeight等属性,如果大家有兴趣的话,等再给大家画几张图介绍一下~
推荐阅读
- HttpClient对外部网络的操作
- ScrollView使用遇到的问题
- C#中HttpClient使用注意(预热与长连接)
- 判断scroll向上还是向下
- 来滚——你不知道的scroll~
- Vue常用插件
- Android|Android 自定义有速率差的联动ScrollView
- iOS横向滚动的scrollView和系统pop手势返回冲突的解决办法
- Web|Web API --元素偏移量 offset 系列
- 使用offset-path实现自定义路径动画