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 相关文章推荐
匹配任意字符的正则表达式写法
Apr 29 Javascript
YUI Compressor压缩JavaScript原理及微优化
Jan 07 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
jQuery固定浮动侧边栏实现思路及代码
Sep 28 Javascript
AngularJS入门教程(一):静态模板
Dec 06 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
Javascript实现计算个人所得税
May 10 Javascript
jQuery中(function($){})(jQuery)详解
Jul 15 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
微信小程序自定义底部导航带跳转功能
Nov 27 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运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
Python引用传值概念与用法实例小结
2017/10/07 Python
NumPy 数组使用大全
2019/04/25 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
MADE法国:提供原创设计师家具
2018/09/18 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
上海期货面试题
2014/01/31 面试题
一套Delphi的笔试题二
2013/05/11 面试题
预备党员思想汇报
2014/01/08 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
课外活动总结范文
2014/07/09 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题