有关dom节点尺寸的小结
Screen
尺寸
Node.Client
-
Node.clientTop
元素的上边框 -
Node.clientLeft
元素的左边框 -
Node.clientWidth
元素的宽度-
在
box-sizing:content-box
由设置width
+ 左右的padding
-
在
box-sizing:border-box
由设置width
- 左右的border
-
-
Node.clientHeight
元素的高度-
在
box-sizing:content-box
由设置height
+ 上下的padding
-
在
box-sizing:border-box
由设置height
- 上下的border
-
Node.offset
-
Node.offsetTop
-
以父元素左上角为基准点 得到垂直方向的距离 由 父元素上内边距 + 子元素上外边距
-
如果是
position:absolute
那么以参考元素节点的左上角作为基准点 得到top
-
-
Node.offsetLeft
-
以父元素左上角为基准点 得到水平方向的距离 由 父元素左内边距 + 子元素左外边距
-
如果是
position:absolute
那么以参考元素节点的左上角作为基准点 得到left
-
-
Node.offsetWidth
获取元素节点的实际占地面积-
在
box-sizing:content-box
由设置width
+ 左右padding
+ 左右border
-
在
box-sizing:border-box
由设置width
-
-
Node.offsetHeight
获取元素节点的实际占地面积-
在
box-sizing:content-box
由设置height
+ 上下padding
+ 上下border
-
在
box-sizing:border-box
由设置height
-
Node.scroll
Node.scrollTop
获取垂直方向被卷去的高度Node.scrollLeft
获取水平方向被卷去的宽度Node.scrollContent
获取元素节点由内容撑大的高度
-
-
回到顶部
- 没有动画
document.documentElement.scrollTop=0
- 需要动画
window.scrollTo({top:0,behavior:
'smooth'});
- 没有动画
-
触底加载
- 判断触底格式
Node.scrollTop
+Node.clientHeight
==Node.scrollHeight
- 被卷曲的高度+自身可视区域的高度==由内容撑大的真实高度
- 一般情况下为了缓冲通常是左边加上某个值大于右边
- 判断触底格式
坐标尺寸
clientY
页面可视区左上角作为基准点layerY
定位时 以自身左上角作为基准点pageY
以页面顶部左上角为基准点screenY
以屏幕做上角作为基准点
扩展
getBoundingClientRect()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!