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 传统事件模型构造的事件监听器实现代码
May 31 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
Mar 01 Javascript
javascript实现信息的显示和隐藏如注册页面
Dec 03 Javascript
js如何实现淡入淡出效果
Nov 18 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
JS简单去除数组中重复项的方法
Sep 13 Javascript
关于json字符串与实体之间的严格验证代码
Nov 10 Javascript
vue修改vue项目运行端口号的方法
Aug 04 Javascript
AngularJS实时获取并显示密码的方法
Feb 06 Javascript
es6 symbol的实现方法示例
Apr 02 Javascript
初试vue-cli使用HBuilderx打包app的坑
Jul 17 Javascript
Vue.js计算机属性computed和methods方法详解
Oct 12 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中使用Oracle数据库(2)
2006/10/09 PHP
php常用Stream函数集介绍
2013/06/24 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
jQuery ajax cache缓存问题
2010/07/01 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
Python复制文件操作实例详解
2015/11/10 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
详解Python with/as使用说明
2018/12/13 Python
浅谈python常用程序算法
2019/03/22 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
wxPython多个窗口的基本结构
2019/11/19 Python
Python如何解除一个装饰器
2020/08/07 Python
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
理货员的岗位职责
2013/11/23 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
个人债务授权委托书
2014/10/17 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
三峡大坝导游词
2015/01/31 职场文书
应届生简历自我评价
2015/03/11 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS