js 获取不同浏览器控件位置的差别解析
内容摘要
这篇文章主要为大家详细介绍了js 获取不同浏览器控件位置的差别解析,具有一定的参考价值,可以用来参考一下
文章正文
这篇文章主要为大家详细介绍了js 获取不同浏览器控件位置的差别解析,具有一定的参考价值,可以用来参考一下。
经测试代码如下:
/**
* 获取坐标位置
*
* @param
* @arrange (www.idcnote.com)
**/
function getpos(e) {
var t=e.offsetTop;
var l=e.offsetLeft;
var height=e.offsetHeight;
while(e=e.offsetParent) {
t+=e.offsetTop;
l+=e.offsetLeft;
}
}
假设 obj 为某个 HTML 控件。obj.offsetTop 指 obj 距离上方或上层控件的位置,整型,单位像素。obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素。
obj.offsetWidth 指 obj 控件自身的宽度,整型,单位像素。obj.offsetHeight 指 obj 控件自身的高度,整型,单位像素。
我们对前面提到的“上方或上层”与“左方或上层”控件作个说明。
例如:
经测试代码如下:
<div id="tool">
<input type="button" value="提交">
<input type="button" value="重置">
</div>
“提交”按钮的 offsetTop 指“提交”按钮距“tool”层上边框的距离,因为距其上边最近的是 “tool” 层的上边框。“重置”按钮的 offsetTop 指“重置”按钮距“tool”层上边框的距离,因为距其上边最近的是 “tool” 层的上边框。
“提交”按钮的 offsetLeft 指“提交”按钮距“tool”层左边框的距离,因为距其左边最近的是 “tool” 层的左边框。
“重置”按钮的 offsetLeft 指“重置”按钮距“提交”按钮右边框的距离,因为距其左边最近的是“提交”按钮的右边框。
offsetTop 可以获得 HTML 元素距离上方或外层元素的位置,style.top 也是可以的,
二者的区别是:
一、offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。
二、offsetTop 只读,而 style.top 可读写。
三、如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。
offsetLeft 与 style.left、offsetWidth 与 style.width、offsetHeight 与 style.height 也是同样道理。
二、offsetTop 只读,而 style.top 可读写。
三、如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度offsetHeight:获取对象相对于版面或由父坐标
offsetParent 属性指定的父坐标的高度offsetLeft:获取对象相对于版面或由
offsetParent 属性指定的父坐标的计算左侧位置offsetTop:获取对象相对于版面或由
offsetTop 属性指定的父坐标的计算顶端位置event.clientX 相对文档的水平座标event.clientY
相对文档的垂直座标event.offsetX 相对容器的水平坐标event.offsetY
相对容器的垂直坐标document.documentElement.scrollTop
垂直方向滚动的值event.clientX+document.documentElement.scrollTop
相对文档的水平座标+垂直方向滚动的量
以上主要指IE之中,FireFox差异如下:
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度offsetHeight:获取对象相对于版面或由父坐标
offsetParent 属性指定的父坐标的高度offsetLeft:获取对象相对于版面或由
offsetParent 属性指定的父坐标的计算左侧位置offsetTop:获取对象相对于版面或由
offsetTop 属性指定的父坐标的计算顶端位置event.clientX 相对文档的水平座标event.clientY
相对文档的垂直座标event.offsetX 相对容器的水平坐标event.offsetY
相对容器的垂直坐标document.documentElement.scrollTop
垂直方向滚动的值event.clientX+document.documentElement.scrollTop
相对文档的水平座标+垂直方向滚动的量
IE6.0、FF1.06+:clientWidth = width + paddingclientHeight = height + paddingoffsetWidth =
width + padding + borderoffsetHeight = height + padding + borderIE5.0/5.5
:-- www.baidu.comclientWidth = width - borderclientHeight =
height - borderoffsetWidth = widthoffsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
width + padding + borderoffsetHeight = height + padding + borderIE5.0/5.5
:-- www.baidu.comclientWidth = width - borderclientHeight =
height - borderoffsetWidth = widthoffsetHeight = height
注:关于js 获取不同浏览器控件位置的差别解析的内容就先介绍到这里,更多相关文章的可以留意
代码注释