获取相对于文档的位置

$('#test').offset() 


function offset(elem) {
  var rect = elem.getBoundingClientRect()    
  return {      
    top: rect.top + document.body.scrollTop,      
    left: rect.left + document.body.scrollLeft    
  }

}
offset(document.getElementById('test'));

获取相对于具有定位(非static)的父元素(祖先元素)的位置:

$('#test').position()


var t = document.getElementById('test');
var position = {top: t.offsetTop, left: t.offsetLeft};

获取相对于可视区左上角的位置

var offset = $('#test').offset();
var position = { top: offset.top - document.body.scrollTop,
          left: offset.left - document.body.scrollLeft
}


var position = document.getElementById('test').getBoundingClientRect();