JavaScript如何获得一个DOM元素的绝对位置?(获取元素位置,不依赖框架)

作者:日期:2014-02-28 14:14:35 点击:309

JavaScript如何获得一个DOM元素的绝对位置?(获取元素位置,不依赖框架)

function offset(ele) {
    var top = ele.offsetTop;
    var left = ele.offsetLeft;
    while (ele.offsetParent) {
        ele = ele.offsetParent;
        if (window.navigator.userAgent.indexOf('MSTE 8') > -1) {
            top += ele.offsetTop;
            left += ele.offsetLeft;
        } else {
            top += ele.offsetTop + ele.clientTop;
            left += ele.offsetLeft + ele.clientLeft;
        }
    }
    return {
        left: left,
        top: top
    }

}
var oImg = document.getElementById('img1');
console.log(offset(oImg).top, offset(oImg).left);

知识点:

(1)判断浏览器版本用window.navigator.userAgent

(2)IE8中offsetTop和offsetLeft包含border的值

上一篇: 利用JavaScript打印出Fibonacci数(不使用全局变量)

下一篇: JavaScript中toStirng()与Object.prototype.toString.call()方法浅谈