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 相关文章推荐
避免回车键导致的页面无意义刷新的解决方法
Apr 12 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
Feb 27 Javascript
jquery.post用法示例代码
Jan 03 Javascript
JavaScript定义类的几种方式总结
Jan 06 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
js实现增加数字显示的环形进度条效果
Feb 05 Javascript
js读取本地文件的实例
Dec 22 Javascript
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
layui-table获得当前行的上/下一行数据的例子
Sep 24 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
Jul 28 Javascript
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
几个有趣的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 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
python 定时修改数据库的示例代码
2018/04/08 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
Python读写Excel表格的方法
2021/03/02 Python
土耳其国际性时尚购物网站:Modanisa
2018/01/19 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
交通事故检查书范文
2014/01/30 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
如何写好自荐信
2014/04/07 职场文书
学习雷锋标语
2014/06/25 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
关于环保的广播稿
2015/12/17 职场文书