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控制的导航菜单实例代码
Dec 03 Javascript
在javascript中如何得到中英文混合字符串的长度
Jan 17 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
Mar 05 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
JS高仿抛物线加入购物车特效实现代码
Feb 20 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
javascript中函数的写法实例代码详解
Oct 28 Javascript
AJAX在JQuery中的应用详解
Jan 30 jQuery
javascript数据类型中的一些小知识点(推荐)
Apr 18 Javascript
AudioContext 实现音频可视化(web技术分享)
Feb 24 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
jQuery登陆判断简单实现代码
2013/04/21 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
javascript每日必学之多态
2016/02/23 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
python使用urlparse分析网址中域名的方法
2015/04/15 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
Python上下文管理器和with块详解
2017/09/09 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
python程序变成软件的实操方法
2019/06/24 Python
python数据分析:关键字提取方式
2020/02/24 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
经管应届生求职信
2013/11/17 职场文书
保护环境建议书100字
2014/05/13 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL