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 一段左右两边随屏滚动的代码
Jun 18 Javascript
鼠标滚轮改变图片大小的示例代码
Nov 20 Javascript
js Array操作的最简短最容易理解方法
Dec 09 Javascript
jquery实现倒计时代码分享
Jun 13 Javascript
jQuery实现个性翻牌效果导航菜单的方法
Mar 09 Javascript
图解Sublime Text3使用技巧
Dec 21 Javascript
Vue如何从1.0迁移到2.0
Oct 19 Javascript
微信小程序实现自上而下字幕滚动
Jul 14 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
Apr 28 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 Javascript
vue element table中自定义一些input的验证操作
Jul 18 Javascript
Ant Design的可编辑Tree的实现操作
Oct 31 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
用php实现像JSP,ASP里Application那样的全局变量
2007/01/12 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
javascript arguments使用示例
2014/12/16 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
使用python turtle画高达
2020/01/19 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
如何利用Python写个坦克大战
2020/11/18 Python
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
学生思想表现的评语
2014/01/30 职场文书
六年级数学教学反思
2014/02/03 职场文书
总经理岗位职责描述
2014/02/08 职场文书
授权委托书样本
2014/04/03 职场文书
安全生产年活动总结
2014/08/29 职场文书
户籍证明书标准模板
2014/09/10 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
为什么node.js不适合大型项目
2021/04/28 Javascript
python 字典和列表嵌套用法详解
2021/06/29 Python