本文系统梳理JavaScript中涉及位置与坐标的常见属性,涵盖DOM元素的offset系列、client系列、滚动属性,BOM的screen可用区域,以及Event对象的多种坐标参照。通过对比各属性的计算基准、是否包含边框及滚动条等细节,帮助开发者准确区分并应用这些易混淆属性。
一、DOM对象属性——距离
1. offsetLeft 与 offsetTop
offsetLeft //返回当前元素左边界到其上级元素(offsetParent)的左边界的距离【只读】
offsetTop //返回当前元素上边界到其上级元素(offsetParent)的上边界的距离【只读】
2. offsetWidth 与 offsetHeight
offsetWidth //返回元素的宽度,**包含边框**【只读】
offsetHeight //返回元素的高度,**包含边框**【只读】T
3. clientWidth 与 clientHeight
clientWidth //返回元素的高度,**【不】包含边框**
clientHeight //返回元素的宽度,**【不】包含边框**
4. scrollTop 与 scrollLeft
scrollTop //返回匹配元素的滚动条的垂直位置
scrollLeft //返回匹配元素的滚动条的水平位置
5. offsetParent
offsetParent //返回元素的偏移容器,即当前容器偏移对应的父容器
二、BOM对象属性——距离
1. width 与 height
screen.width //电脑屏幕的宽度
screen.height //电脑屏幕的高度
2. availWidth 与 availHeight
screen.availWidth //电脑屏幕的宽度【减去窗口工具条】
screen.availHeight //电脑屏幕的高度【减去窗口工具条】
三、Window对象属性——距离
2. innerWidth 与 innerHeight
window.innerWidth //浏览器窗口的内宽度
window.innerHeight //浏览器窗口的内高度
四、Event对象属性——坐标
1. offsetX 与 offsetY
offsetX //相对于元素的横坐标
offsetY //相对于元素的纵坐标
2. clientX 与 clientY
clientX //相对于浏览器窗口的横坐标
clientY //相对于浏览器窗口的纵坐标
3. pageX 与 pageY
pageX //相对于页面的横坐标
pageY //相对于页面的纵坐标
4. screenX 与 screenY
screenX //相对于电脑屏幕的横坐标
screenY //相对于电脑屏幕的纵坐标
【可配合下方图示理解坐标】

总结
至此,关于JS中易混淆的位置相关属性介绍完毕。如需了解更多JS位置属性内容,请查阅本站往期文章或继续浏览下文。感谢大家的支持!