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或asp实现的判断身份证号码是否正确两种验证方法
Nov 26 Javascript
javascript 仿QQ滑动菜单效果代码
Sep 03 Javascript
JS删除数组元素的函数介绍
Mar 27 Javascript
JavaScript调试技巧之console.log()详解
Mar 19 Javascript
JavaScript实现数字数组正序排列的方法
Apr 06 Javascript
jquery判断复选框是否选中进行答题提示特效
Dec 10 Javascript
js实现字符串和数组之间相互转换操作
Jan 12 Javascript
canvas实现探照灯效果
Feb 07 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
Apr 12 Javascript
Vue页面骨架屏注入方法
May 13 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
Aug 10 Javascript
原生JS实现的简单小钟表功能示例
Aug 30 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
smarty模板引擎之分配数据类型
2015/03/30 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
Javascript验证方法大全
2015/09/21 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
Python显示进度条的方法
2014/09/20 Python
浅析Python中的多进程与多线程的使用
2015/04/07 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
pymysql的简单封装代码实例
2020/01/08 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
python 绘制国旗的示例
2020/09/27 Python
委托证明的格式
2014/01/10 职场文书
学校党支部承诺书
2015/04/30 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技