天天看点

javascript求元素到页面的绝对距离

/*

     * 求元素到页面的绝对距离:

     * 直接使用函数的返回值

     * 例如:getPos("元素").left,得到元素距离左侧的绝对距离

     *         getPos("元素").top,得到元素距离上侧的绝对距离

     */

    function getPos(ele) {

        // 初始左边距和上边距都为0

        var l = 0;

        var t = 0;

        // 当元素存在定位父级(即ele.offsetParent不为null)时,执行本循环内的代码块

        while (ele.offsetParent) {

            // 初始的边距累加元素的边距和边框宽度

            l += ele.offsetLeft + ele.offsetParent.clientLeft;

            t += ele.offsetTop + ele.offsetParent.clientTop;

            // 将元素替换为元素的定位父级(迭代)

            ele = ele.offsetParent;

        }

        // 等上面的循环体结束后才会输出{}

        return {

            'left': l,

            'top': t

        };

    }      

继续阅读