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 相关文章推荐
xml和web特殊字符
Apr 28 Javascript
Jquery动态改变图片IMG的src地址示例
Jun 25 Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 Javascript
JavaScript实战之带收放动画效果的导航菜单
Aug 16 Javascript
Bootstrap基本样式学习笔记之按钮(4)
Dec 07 Javascript
bootstrap table实例详解
Jan 06 Javascript
JavaScript正则获取地址栏中参数的方法
Mar 02 Javascript
vue项目中实现的微信分享功能示例
Jan 21 Javascript
Vue中多元素过渡特效的解决方案
Feb 05 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
Mar 13 Javascript
vue修改Element的el-table样式的4种方法
Sep 17 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
jQuery使用手册之一
2007/03/24 Javascript
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
服务员自我评价
2014/01/25 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
委托书怎样写
2014/08/30 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书