原生js怎么获取一个div到浏览器边上的距离

原生js怎么获取一个div到浏览器边上的距离?
obj.offsetLeft试了不行,他是获取到父级的距离不是到浏览器边上的距离!!

阅读 5.2k
2 个回答

el.getBoundingClientRect()

  1. 首先 @穗乃果 提供的答案绝对正确,而且也兼容。
    var pos=obj.getBoundingClientReact();

    pos.left
    pos.right
    pos.top
    pos.bottom

  2. 如果不想用系统提供的API,而且你心里还感觉它不兼容。

可以自己封装:
只封装了 left,top, 仅供参考。

    function getPosition(obj){
        var l=0;
        var t=0;
        while(obj){
            l+=obj.offsetLeft;
            t+=obj.offsetTop;
            obj=obj.offsetParent;
        }
        return {left:l, top:t};
    }

使用:

var pos=getPosition(document.querySelector('#div1'));
console.log(pos.left, pos.top);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题