视口坐标和文档坐标

整个浏览器

文档坐标:

不会随浏览器滚动而变化

  • css指定元素位置时,文档坐标

视口坐标:

随浏览器滚动而变化

  • 查询元素的位置,视口坐标
  • 事件处理中的鼠标坐标,视口坐标

pageX和pageY

视口坐标和文档坐标_第1张图片

浏览器窗口滚动条的位置

  • pageXOffset
    pageYOffset
    除ie8及以下

  • scrollLeft和scollTop 适用于所有浏览器
    e.g.

视口坐标和文档坐标_第2张图片
查询窗口滚动条的位置

查询窗口的视口尺寸 clientWidth和clientHeight

视口坐标和文档坐标_第3张图片
查询窗口的视口尺寸

单个元素

查询一个元素视口的位置

getBoundingClientRect()

它不需要参数,返回一个包含left、right、top、bottom属性的对象
除IE浏览器外还包含 width和height属性

  • 计算元素的文档位置
视口坐标和文档坐标_第4张图片
计算元素的文档位置
  • 计算元素的width和height
视口坐标和文档坐标_第5张图片
计算元素的width和height

注getBoundingClientRect()返回元素的坐标包含border和padding,但不包含margin

getClientRects()

针对内联元素,可能占有多行,返回一个对象数组

注getBoundingClientRect()和getClientRects()返回的是静态快照,当视口改变时,不会实时更新

滚动浏览器 scrollTo

视口坐标和文档坐标_第6张图片
scrollTo

offsetLeft、offsetTop

相对父元素
e.g. 计算出该元素的文档位置


视口坐标和文档坐标_第7张图片
offsetLeft、offsetTop

元素的offset,client,scroll

视口坐标和文档坐标_第8张图片
概览

clientWidth和clientHeight

1.指的是padding和content
2.(pading和comtent)之前有滚动条,不包含滚动条
3.i,span内联元素该值返回0

offsetWidth和offsetHeight

1.指的是 border,padding和content

scrollWidth和srollHeight

1.指的是padding和content,和任何溢出的内容的尺寸
2.若没有溢出的内容的尺寸,和clientWidth和clientHeigh相等

clientLeft和clientTop

1.通常指的是border,若滚动条在左侧,还包含滚动条的宽度
2.内联元素指为0

offLeft和offTop

1.指的是相对于父元素的x,y坐标

scrollLeft和scrollTop

1.查询滚动条的位置
2.或指定滚动条的位置
3.或使用scrollTo
参考指南:
js权威指南 15章

你可能感兴趣的:(视口坐标和文档坐标)