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 相关文章推荐
用js实现的仿sohu博客更换页面风格(简单版)
Mar 22 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
Apr 02 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
jQuery中delegate和on的用法与区别详细解析
Jan 26 Javascript
JavaScrip调试技巧之断点调试
Oct 22 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
Nov 24 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
JavaScript提高性能知识点汇总
Jan 15 Javascript
angularjs使用directive实现分页组件的示例
Feb 07 Javascript
详解vue-cli与webpack结合如何处理静态资源
Sep 19 Javascript
Js中async/await的执行顺序详解
Sep 22 Javascript
微信小程序实现省市区三级地址选择
Jun 21 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调用shell的方法
2014/11/05 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
2020/07/31 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
Python中使用asyncio 封装文件读写
2016/09/11 Python
python使用opencv进行人脸识别
2017/04/07 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
对于Python深浅拷贝的理解
2019/07/29 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
python sorted函数原理解析及练习
2020/02/10 Python
django 实现简单的插入视频
2020/04/07 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
药学专业个人的自我评价
2013/12/31 职场文书
学校安全检查制度
2014/01/27 职场文书
三年级学生评语
2014/04/23 职场文书
七一慰问简报
2015/07/20 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书