js实现jquery的offset()方法实例


Posted in Javascript onJanuary 10, 2015

本文实例讲述了js实现jquery的offset()方法。分享给大家供大家参考。具体分析如下:

用过jQuery的offset()的同学都知道offset().top或offset().left很方便地取得元素相对于整个页面的偏移。

而在js里,没有这样直接的方法,节点的属性offsetTop可以获得该节点相对于父节点的相对偏移,但不能直接获得其绝对偏移,我们可用节点逐层递归向上来相加offsetTop来获得绝对偏移。

function getOffset(Node, offset) {

    if (!offset) {

        offset = {};

        offset.top = 0;

        offset.left = 0;

    }
    if (Node == document.body) {//当该节点为body节点时,结束递归

        return offset;

    }
    offset.top += Node.offsetTop;

    offset.left += Node.offsetLeft;
    return getOffset(Node.parentNode, offset);//向上累加offset里的值

}

 

使用时,则如:

var a = document.getElementById('a');

//getOffset(a).top

//getOffset(a).left

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript模仿msgbox提示效果代码
Jun 10 Javascript
基于jquery实现的表格分页实现代码
Jun 21 Javascript
jQuery实现tag便签去重效果的方法
Jan 20 Javascript
JavaScript事件处理的方式(三种)
Apr 26 Javascript
基本DOM节点操作
Jan 17 Javascript
js仿微博动态栏功能
Feb 22 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
Mar 03 Javascript
vue内置组件transition简单原理图文详解(小结)
Jul 12 Javascript
微信小程序分享海报生成的实现方法
Dec 10 Javascript
JavaScript常见继承模式实例小结
Jan 11 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
May 20 Javascript
一分钟学会JavaScript中的try-catch
Dec 14 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
Jan 09 #Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
Jan 09 #Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 #Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
Jan 09 #Javascript
javascript获取四位数字或者字母的随机数
Jan 09 #Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 #Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 #Javascript
You might like
改变Apache端口等配置修改方法
2008/06/05 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
php微信开发之谷歌测距
2018/06/14 PHP
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
Node.js编码规范
2014/07/14 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python字符串替换的2种方法
2014/11/30 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
浅谈Python中函数的参数传递
2016/06/21 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
python list转矩阵的实例讲解
2018/08/04 Python
python名片管理系统开发
2020/06/18 Python
英文商务邀请信
2014/01/22 职场文书
安全环保演讲稿
2014/08/28 职场文书
网络研修心得体会
2016/01/08 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
windows安装python超详细图文教程
2021/05/21 Python