js获取控件位置以及不同浏览器中的差别介绍


Posted in Javascript onAugust 08, 2013
//获取坐标位置 
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 也是同样道理。

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差异如下:

IE6.0、FF1.06+: 
clientWidth = width + padding 
clientHeight = height + padding 
offsetWidth = width + padding + border 
offsetHeight = height + padding + border 
IE5.0/5.5: 
clientWidth = width - border 
clientHeight = height - border 
offsetWidth = width 
offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
Javascript 相关文章推荐
javascript 建设银行登陆键盘
Jun 10 Javascript
处理文本部分内容的TextRange对象应用实例
Jul 29 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
Jan 13 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
jQuery插件passwordStrength密码强度指标详解
Jun 24 Javascript
详解handlebars+require基本使用方法
Dec 21 Javascript
jQuery实现的表格前端排序功能示例
Sep 18 jQuery
vue+web端仿微信网页版聊天室功能
Apr 30 Javascript
JavaScript链式调用原理与实现方法详解
May 16 Javascript
JavaScript 如何计算文本的行数的实现
Sep 14 Javascript
JavaScript前后端JSON使用方法教程
Nov 23 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
Aug 08 #Javascript
Jquery chosen动态设置值实例介绍
Aug 08 #Javascript
extjs两个tbar问题探讨
Aug 08 #Javascript
JS实现随机数生成算法示例代码
Aug 08 #Javascript
判断是否安装flash player及当前版本的JS代码
Aug 08 #Javascript
js 为label标签和div标签赋值的方法
Aug 08 #Javascript
JS模拟自动点击的简单实例
Aug 08 #Javascript
You might like
PHP安装全攻略:APACHE
2006/10/09 PHP
提升PHP执行速度全攻略(下)
2006/10/09 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
Gird事件机制初级读本
2007/03/10 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
js登录弹出层特效
2014/03/07 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
详解基于webpack搭建react运行环境
2017/06/01 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
详解python中的线程
2018/02/10 Python
python实现扫描ip地址的小程序
2019/04/16 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
毕业生大学生活自我总结
2014/01/31 职场文书
新文化运动的口号
2014/06/21 职场文书
公司委托书怎么写
2014/08/02 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js