js实现jquery的offset()方法实例

 更新时间:2015年01月10日 10:14:53   投稿:shichen2014  
这篇文章主要介绍了js实现jquery的offset()方法,实例分析了jquery的offset()方法原理与采用javascript实现的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • 微信小程序实现的贪吃蛇游戏【附源码下载】

    微信小程序实现的贪吃蛇游戏【附源码下载】

    这篇文章主要介绍了微信小程序实现的贪吃蛇游戏,结合实例形式分析了微信小程序实现贪吃蛇游戏功能的相关界面布局与代码逻辑操作技巧,并附带源码供读者下载参考,需要的朋友可以参考下
    2018-01-01
  • 深入浅析JavaScript中的RegExp对象

    深入浅析JavaScript中的RegExp对象

    正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用作按照“给定模式”匹配文本的工具。下面通过本文给大家分享js 中的regexp对象,需要的朋友参考下吧
    2017-09-09
  • html判断当前页面是否在iframe中的实例

    html判断当前页面是否在iframe中的实例

    下面小编就为大家带来一篇html判断当前页面是否在iframe中的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • js下弹出窗口的变通

    js下弹出窗口的变通

    js下弹出窗口的变通...
    2007-04-04
  • 原生javascript实现拖动元素示例代码

    原生javascript实现拖动元素示例代码

    首先改变被拖动元素的布局属性,接着捕捉鼠标事件,当触发mousedown时,记录下当前鼠标在元素中的相对位置,接着处理mousemove事件
    2014-09-09
  • Bootstrap按钮功能之查询按钮和重置按钮

    Bootstrap按钮功能之查询按钮和重置按钮

    一般情况下,查询列表有查询条件、查询按钮和重置按钮,输入查询条件,点击查询按钮查询列表等数据;点击重置按钮会将查询条件恢复到原始状态。接下来通过本文给大家介绍bootstrap实现查询按钮和重置按钮的方法,一起看看吧
    2016-10-10
  • javascript动态添加删除tabs标签的方法

    javascript动态添加删除tabs标签的方法

    这篇文章主要介绍了javascript动态添加删除tabs标签的方法,实例分析了javascript针对tabs标签的动态添加与删除方法,涉及javascript页面元素的操作技巧,需要的朋友可以参考下
    2015-07-07
  • javascript面向对象之定义成员方法实例分析

    javascript面向对象之定义成员方法实例分析

    这篇文章主要介绍了javascript面向对象之定义成员方法,实例分析了成员方法的定义与使用技巧,需要的朋友可以参考下
    2015-01-01
  • 项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)

    项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)

    这篇文章主要介绍了项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)的相关资料,需要的朋友可以参考下
    2016-07-07
  • 浅析webpack 如何优雅的使用tree-shaking(摇树优化)

    浅析webpack 如何优雅的使用tree-shaking(摇树优化)

    这篇文章主要介绍了webpack 如何使用tree-shaking(摇树优化),本文介绍了什么是tree-shaking,commonJS 模块,es6 模块,怎么使用tree-shaking等,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。
    2017-08-08

最新评论