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 29 Javascript
chrome下img加载对height()的影响示例探讨
May 26 Javascript
Node.js实现批量去除BOM文件头
Dec 20 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 Javascript
js判断鼠标位置是否在某个div中的方法
Feb 26 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
Jun 01 Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 Javascript
bootstrap警告框使用方法解析
Jan 13 Javascript
JS中定位 position 的使用实例代码
Aug 06 Javascript
微信小程序冒泡事件及其阻止方法实例分析
Dec 06 Javascript
原来JS还可以这样拆箱转换详解
Feb 01 Javascript
JS字符串常用操作方法实例小结
Jun 24 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版 汉字转码的实现详解
2013/06/09 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
面向对象的javascript(笔记)
2009/10/06 Javascript
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
javascript页面渲染速度测试脚本分享
2014/04/15 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
详解javascript遍历方式
2015/11/11 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
初步探究Python程序的执行原理
2015/04/11 Python
python中的代码编码格式转换问题
2015/06/10 Python
python使用tornado实现简单爬虫
2018/07/28 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
python关于倒排列的知识点总结
2020/10/13 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
英语商务邀请函范文
2014/01/16 职场文书
环保建议书400字
2014/05/14 职场文书
中学教师师德承诺书
2014/05/23 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python