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开发规范要求(规范化代码)
Aug 16 Javascript
JQuery优缺点分析说明
Apr 10 Javascript
javascript获取所有同类checkbox选项(实例代码)
Nov 07 Javascript
jQuery实现图片轮播特效代码分享
Sep 15 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
May 10 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
对于input 框限定输入值为浮点型的js代码
Sep 25 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
Nov 07 Javascript
解决layer.open后laydate失效的问题
Sep 06 Javascript
js实现移动端tab切换时下划线滑动效果
Sep 08 Javascript
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
使用vuex-persistedstate本地存储vuex
Apr 29 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防止跨域提交表单
2013/11/01 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
日期 时间js控件
2009/05/07 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
记录一次完整的react hooks实践
2019/03/11 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
Python实现的tab文件操作类分享
2014/11/20 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
天猫精选:上天猫,就够了
2016/09/21 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
质检部部长职责
2013/12/16 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
协议书范本
2014/04/23 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
还款承诺书范文
2014/05/20 职场文书
个人政治思想总结
2015/03/05 职场文书
孔子观后感
2015/06/08 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
小学运动会入场口号
2015/12/24 职场文书
Python实现单例模式的5种方法
2021/06/15 Python
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android