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 相关文章推荐
javascript下有关dom以及xml节点访问兼容问题
Nov 26 Javascript
javascript开发中因空格引发的错误
Nov 08 Javascript
jquery自定义属性(类型/属性值)
May 21 Javascript
简洁Ajax函数处理(示例代码)
Nov 15 Javascript
js实现防止被iframe的方法
Jul 03 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
详解js中call与apply关键字的作用
Nov 21 Javascript
JavaScript中使用Async实现异步控制
Aug 15 Javascript
微信小程序获取音频时长与实时获取播放进度问题
Aug 28 Javascript
面试题:react和vue的区别分析
Apr 08 Javascript
原生js实现3D轮播图
Mar 21 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
Feb 05 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指定函数参数默认值示例代码
2013/12/04 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
利用javascript查看html源文件
2006/11/08 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
python实现保存网页到本地示例
2014/03/16 Python
Python实现一个简单的MySQL类
2015/01/07 Python
python实现按长宽比缩放图片
2018/06/07 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
python tornado使用流生成图片的例子
2019/11/18 Python
python怎么提高计算速度
2020/06/11 Python
员工年终演讲稿
2014/01/03 职场文书
财务会计自荐信范文
2014/02/21 职场文书
学习经验演讲稿
2014/05/10 职场文书
爬山的活动方案
2014/08/16 职场文书
安全施工责任书
2014/08/25 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android