文档坐标和视口坐标
1 二者区别
1.1 文档坐标是整个HTML 形成的坐标体系,视口是显示文档内容的 浏览器的一部分,它不包括浏览器的”外壳”,如菜单和工具栏和标签页
1.2 如果文档比视口要小,或者说文档还没有出现滚动,那么这个时候文档左上角就是视口左上角,文档坐标和视口坐标是同一个系统;
1.3 文档坐标是视口坐标更加基础,因为文档坐标系统是固定不变的,元素相对于文档坐标的位置是不变的;但是视口坐标系统就不一样了,元素相对于视口坐标的位置,在发生滚动的时候,是实时变化的;
2 获取窗口滚动条的位置
|
|
3 获取窗口的可视区域的宽高
|
|
4 获取文档内容的宽高
|
|
5 获取元素相对于视口坐标系统原点的距离
ele.getBoundingClientRect(); 返回一个数组,包括元素左上角和右下角距离视口坐标系统原点的距离,以及元素自身的宽高
|
|
6 获取元素相对于 文档坐标系统 原点 的 距离 ;
offsetLeft offsetTop 用来获取元素(border边界)左上角相对于文档坐标原点的距离
或者 相对于 定位了的父元素 的border边界左上角的距离;
|
|
对于不支持ele.getBoundingClientRect();获取元素相对于 视口坐标系统的浏览器来说 进行以下封装,用来获取元素相对于视口坐标系统的 x y的值
|
|
5 滚动文档内容 window.scrollTo(x,y) window.scrollBy(x,y) 将文档内容滚动到距离 视口坐标左上角 x,y 处的位置;