元素坐标 
有 2 种坐标系:
- 相对于窗口 
- 类似于 
position: fixed 
 - 类似于 
 - 相对于文档 
- 类似于 
position: absolute 
 - 类似于 
 
窗口坐标 

getBoundingClientRect:最小矩形的窗口坐标- 返回 
DOMRect对象x/y:左上角的窗口坐标width/height:宽高top/bottom:顶部/底部边缘的 Y 坐标left/right:左侧/右侧边缘的 X 坐标
 
- 返回 
 
文档坐标 
没有标准方法获取文档坐标,实现方式不唯一。
- 窗口坐标 + 文档滚动出的部分
 
js
const rect = elem.getBoundingClientRect();
const top = rect.top + window.pageYOffset;
const left = rect.left + window.pageXOffset;- 累加 
offsetTop/offsetLeft直到<body> 
js
const getElementTop = elem => {
  let top = 0;
  while (elem) {
    top += elem.offsetTop;
    elem = elem.offsetParent;
  }
  return top;
};
const getElementLeft = elem => {
  let left = 0;
  while (elem) {
    left += elem.offsetLeft;
    elem = elem.offsetParent;
  }
  return left;
};