获取页面中任意一个元素距离body的偏移量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取页面中任意一个元素距离body的偏移量相关的知识,希望对你有一定的参考价值。

//offSet:等同于jQuery中的offSet方法,获取页面中任意一个元素距离body的偏移量
function offSet(curEle) {
    var totalLeft = null;
    var totalTop = null;
    var par = curEle.offsetParent;
    //首先把自己本身的相加
    totalLeft += curEle.offsetLeft;
    totalTop += curEle.offsetTop;
    //现在开始一级一级往上查找,只要没有遇到body,我们就把父级参照物的边框和偏移相加
    while (par){
        if (navigator.userAgent.indexOf("MSIE 8.0") === -1){
            //不是IE8我们才进行累加父级参照物的边框
            totalTop += par.clientTop;
            totalLeft += par.clientLeft;
        }
        //把父级参照物的偏移相加
        totalTop += par.offsetTop;
        totalLeft += par.offsetLeft;
        par = par.offsetParent;
    }
    return {left: totalLeft,top: totalTop};
    //返回一个数组,方便我们使用哦。
}


以上是关于获取页面中任意一个元素距离body的偏移量的主要内容,如果未能解决你的问题,请参考以下文章

什么是偏移量 怎么计算

JavaScript 之 特效

如何正确获取 DOM 元素的位置偏移量? [复制]

元素偏移量offset系列

元素偏移量offset系列

角度通过id获取元素的偏移量