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制作浮动广告代码
Dec 30 Javascript
简单选项卡 js和jquery制作方法分享
Feb 26 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
js实现点击文本框显示日期选择器特效代码分享
May 21 Javascript
相册展示PhotoSwipe.js插件实现
Aug 25 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
Nov 10 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
Jan 04 Javascript
vue自定义指令directive的使用方法
Apr 07 Javascript
NProgress显示顶部进度条效果及使用详解
Sep 21 Javascript
jQuery擦除插件eraser使用方法详解
Jan 11 jQuery
几个有趣的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编写的导航条程序
2006/10/09 PHP
实用函数7
2007/11/08 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
PHP中文编码小技巧
2014/12/25 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
python中的一些类型转换函数小结
2013/02/10 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
python实现自主查询实时天气
2018/06/22 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
python怎么判断素数
2020/07/01 Python
python asyncio 协程库的使用
2021/01/21 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
合作意向书模板
2014/03/31 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
幼儿园教师求职信
2015/03/20 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
古诗之感恩老师
2019/10/24 职场文书