JavaScript 页面坐标相关知识整理

JavaScript 页面坐标相关知识整理

  offsetTop 可以获得 HTML 元素距离上方或外层元素的位置,style.top 也是可以的,二者的区别是:

  一、offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。

  二、offsetTop 只读,而 style.top 可读写。

  三、如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。

  offsetLeft 与 style.left、offsetWidth 与 style.width、offsetHeight 与 style.height 也是同样道理。

  scrollHeight: 获取对象的滚动高度。

  scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离

  scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

  scrollWidth:获取对象的滚动宽度

  offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度

  offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置

  offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置

  event.clientX 相对文档的水平座标

  event.clientY 相对文档的垂直座标

  event.offsetX 相对容器的水平坐标

  event.offsetY 相对容器的垂直坐标

  document.documentElement.scrollTop 垂直方向滚动的值

  event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

  以上主要指IE之中,FireFox差异如下:

  IE6.0、FF1.06+:

  clientWidth = width + padding

  clientHeight = height + padding

  offsetWidth = width + padding + border

  offsetHeight = height + padding + border

  IE5.0/5.5:

  clientWidth = width - border

  clientHeight = height - border

  offsetWidth = width

  offsetHeight = height

  (需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关系);

  IE---------------------

  网页可见区域宽 document.body.clientWidth

  网页可见区域高 document.body.clientHeight

  网页可见区域宽(包括边线的宽) document.body.offsetWidth

  网页可见区域高(包括边线的宽) document.body.offsetHeight

  网页正文全文宽 document.body.scrollWidth

  网页正文全文高 document.body.scrollHeight

  网页被卷去的高 document.body.scrollTop

  网页被卷去的左 document.body.scrollLeft

  网页正文部分上 window.screenTop

  网页正文部分左 window.screenLeft

  屏幕分辨率的高 window.screen.height

  屏幕分辨率的宽 window.screen.width

  屏幕可用工作区高度 window.screen.availHeight

  屏幕可用工作区宽度 window.screen.availWidth

  

复制代码 代码如下:

  //对象坐标

  var oRect = document.getElementById("divHotImg").getBoundingClientRect();

  x=oRect.left

  y=oRect.top

  //alert("("+x+","+y+")")

  if(ns4||ns6){

  x = e.pageX;

  y = e.pageY;

  }