offsetLeft和offsetTop获取元素偏移
offset概述
offset翻译过来就是偏移量 我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等
获得元素距离带有定位父元素的位置
获得元素自身的大小(宽度高度)
注意:返回的数值都不带单位
代码示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } .father { width: 200px; height: 200px; background-color: pink; margin: 150px; } .son { width: 100px; height: 100px; background-color: purple; margin: 45px; } </style> </head> <body> <div class="father"> <div class="son"></div> </div> </body> <script> // offset系列 var father = document.querySelector('.father') var son = document.querySelector('.son') // 可以得到元素的偏移位置返回的不带单位的数值 console.log(father.offsetTop); console.log(father.offsetLeft); // 它以带有定位的父亲为准﹑如果么有父亲或者父亲没有定位则以 body为准 console.log(son.offsetLeft); // 可以得到元素的大小 宽度和高度 </script> </html>
offsetWidth和offsetHeight获取元素大小:
代码示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } .father { width: 200px; height: 200px; background-color: pink; margin: 150px; } .son { width: 100px; height: 100px; background-color: purple; margin: 45px; } .w { width: 200px; height: 200px; background-color: skyblue; margin: 0 auto 200px; } </style> </head> <body> <div class="father"> <div class="son"></div> </div> <div class="w"></div> </body> <script> // offset系列 var father = document.querySelector('.father') var son = document.querySelector('.son') // 可以得到元素的偏移位置返回的不带单位的数值 console.log(father.offsetTop); console.log(father.offsetLeft); // 它以带有定位的父亲为准﹑如果么有父亲或者父亲没有定位则以 body为准 console.log(son.offsetLeft); var w = document.querySelector('.w') // 可以得到元素的大小 宽度和高度 是包含padding + border + width console.log(w.offsetWidth); console.log(w.offsetHeight); // 返回带有定位的父亲 否则返回的是body console.log(son.offsetParent); // 返回带有定位的父亲 否则返回的是body console.log(son.parentNode); // 返回father 是最近一级的父亲 不管父亲有无定位 </script> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!