js获取元素在浏览器中的绝对位置


Posted in Javascript onJuly 24, 2010

JavaScript中提供获取HTML元素位置的属性:

HTMLElement.offsetLeft
HTMLElement.offsetHeight
但 是需要注意的是,这两个属性所储存的数值并不是该元素相对整个浏览器画布的绝对位置,而是相对于其父元素位置的相对位置,也就是说这两个数值得到的是以其 父元素左上角为(0,0)点从而计算出的数值。那么如何得到一个HTML元素的绝对位置呢,可以用以下函数:

//获取元素的纵坐标 
function getTop(e){ 
var offset=e.offsetTop; 
if(e.offsetParent!=null) offset+=getTop(e.offsetParent); 
return offset; 
} 
//获取元素的横坐标 
function getLeft(e){ 
var offset=e.offsetLeft; 
if(e.offsetParent!=null) offset+=getLeft(e.offsetParent); 
return offset; 
}

其原理就是利用HTMLElement.offsetParent属性,如果当前元素的父元素不是空(null),则在原本的offsetTop基础上加上当前的offsetTop,然后继续获取父元素的父元素的offsetTop,再将其加之,最终递归出该元素相对于整个浏览器画布的纵坐标。横坐标亦然。
Javascript 相关文章推荐
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
Aug 13 Javascript
jquery 插件 任意位置浮动固定层
Dec 25 Javascript
用js实现计算加载页面所用的时间
Apr 02 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
Jun 24 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
Dec 17 Javascript
javascript实现左右控制无缝滚动
Dec 31 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
js滚轮事件兼容性问题需要注意哪些
Nov 15 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
Aug 16 Javascript
JavaScript对象的特性与实践应用深入详解
Dec 30 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
Apr 25 Javascript
vscode+gulp轻松开发小程序的完整步骤
Oct 18 Javascript
几个有趣的Javascript Hack
Jul 24 #Javascript
用jquery实现等比例缩放图片效果插件
Jul 24 #Javascript
js ondocumentready onmouseover onclick onmouseout 样式
Jul 22 #Javascript
javascript基础第一章 JavaScript与用户端
Jul 22 #Javascript
aspx中利用js实现确认删除代码
Jul 22 #Javascript
JS实现self的resend
Jul 22 #Javascript
JavaScript编程开发中的五个实用小技巧
Jul 22 #Javascript
You might like
php数据库配置文件一般做法分享
2012/07/07 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
区分JS中的undefined,null,"",0和false
2007/03/08 Javascript
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
JS跨域总结
2012/08/30 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
Python返回数组/List长度的实例
2018/06/23 Python
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python随机模块random使用方法详解
2020/02/14 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
继电保护工岗位职责
2014/01/05 职场文书
建筑设计学生的自我评价
2014/01/16 职场文书
企业元宵节主持词
2014/03/25 职场文书
班组长竞聘书
2014/03/31 职场文书
求职信模板
2014/05/23 职场文书
大明湖导游词
2015/02/03 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记