原创

使用js实现 jquery 中 offset() 方法

使用jQuery中的offset()的方法 offset().top或offset().left很方便地取得元素相对于整个页面的偏移,而js不能获得绝对偏移,因此采用节点递归的方式来获得绝对偏移,代码具体如下:

function getOffset(Node, offset) {
    if (!offset) {
        offset = {};
        offset.top = 0;
        offset.left = 0;
    }
    //当该节点为body节点时,结束递归
    if (Node == document.body) {
        return offset;
    }
    offset.top += Node.offsetTop;
    offset.left += Node.offsetLeft;
    return getOffset(Node.parentNode, offset);
}


使用方式如下:

var a = document.getElementById('a');
getOffset(a).top
getOffset(a).left


关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信