【clientX,offsetX,screenX】 【scrollWidth,clientWidth,offsetWidth】的区别

一、深刻认识clientX,offsetX,screenX

概念(来源于网络):

clientX 设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
clientY 设置或获取鼠标指针位置相对于当前窗口的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。 
offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。 
screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。 
screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。 
x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标(亦即相对于当前窗口)。 
y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标(亦即相对于当前窗口)。

实验实例(来源于网络,修改过):

[c-sharp] view plaincopy

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3. <BODY onclick=‘test()‘ style="margin:0 0 0 0" mce_style="margin:0 0 0 0">
  4. <font color=green>设置或获取鼠标指针位置相对于窗口客户区域的 x,y 坐标,其中客户区域不包括窗口自身的控件和滚动条。</font>
  5. <br/>
  6. clientX=<INPUT TYPE="text" NAME="x1">
  7. clientY=<INPUT TYPE="text" NAME="x2">
  8. <br/>
  9. <br/>
  10. <font color=blue>设置或获取鼠标指针位置相对于触发事件的对象的 x,y 坐标。 </font>
  11. <br/>
  12. offsetX =<INPUT TYPE="text" NAME="x3">
  13. offsetY =<INPUT TYPE="text" NAME="x4">
  14. <br/>
  15. <br/>
  16. <font color=green>设置或获取获取鼠标指针位置相对于用户屏幕的 x,y 坐标 </font>
  17. <br/>
  18. screenX =<INPUT TYPE="text" NAME="x5">
  19. screenY =<INPUT TYPE="text" NAME="x6">
  20. <br/>
  21. <br/>
  22. <font color=blue>设置或获取鼠标指针位置相对于父文档的 x,y 像素坐标。</font>
  23. <br/>
  24. x=<INPUT TYPE="text" NAME="x7">
  25. y=<INPUT TYPE="text" NAME="x8">
  26. <br/>
  27. <br/>
  28. <TABLE  align="center" width=400 height=500 border=1 style="border-style:none" mce_style="border-style:none" CELLPADDING=0 CELLSPACING=0 onclick=‘test()‘>
  29. <TR>
  30. <TD>a</TD>
  31. <TD>b</TD>
  32. </TR>
  33. <TR>
  34. <TD>c</TD>
  35. <TD>d</TD>
  36. </TR>
  37. </TABLE>
  38. </body>
  39. </html>
  40. <SCRIPT LANGUAGE="JavaScript">
  41. <!--
  42. function test(){
  43. document.all.x1.value=event.clientX;
  44. document.all.x2.value=event.clientY;
  45. document.all.x3.value=event.offsetX;
  46. document.all.x4.value=event.offsetY;
  47. document.all.x5.value=event.screenX;
  48. document.all.x6.value=event.screenY;
  49. document.all.x7.value=event.x;
  50. document.all.x8.value=event.y;
  51. }
  52. //-->
  53. </SCRIPT>

实验结果分析:

    1. clientX 和x值在实验过程中,没有发现值不一样的例子,所以我认为它们在效果上是一样的!
    2. offsetX 是相对于当前窗口内,本触发事件对象(或者是某一区域)而言,如本例中你单击a区域,值是相对于a所在<td>区域而言,同理b,c,d都一样!
    3. clientX ,x,offsetX共同点:它们是相对位置,相对于当前窗口,只是offsetX相对于当前窗口的某个触发对象的父容器而言!
    4. screenX是相对与客户端显示器而言,是绝对位置!

【转载】http://blog.csdn.net/weinideai/article/details/3885444

二、scrollWidth,clientWidth与offsetWidth的区别

(注意:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

scrollWidth 
是对象的实际内容的宽,不包括边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际度)

clientWidth 
是对象可见的宽度,不包括滚动条等边线,会随窗口的显示大小改变。

offsetWidth 
是对象的可见宽度,包括滚动条等边线,会随窗口的显示大小改变。

一个scrollWidth和clientWidth的例子:

<html> 
<head> 
<title>ctt.htm文件</title> 
</head> 
<body> 
<textarea wrap="off" onfocus="alert(‘scrollWidth:‘+this.scrollWidth+‘/n clientWidth:‘+this.clientWidth);"></textarea> 
</body> 
</html>

在文本框内输入内容,当横向滚动条没出来前scrollWidth和clientWidth的值是一样的。当一行内容超出文本框的宽度,就有横向滚动条出来了,scrollWidth的值就变了。 
scrollWidth是对象实际内容的宽度。 
clientWidth是对象看到的宽度(不含边线)。

一个clientWidth和offsetWidth的例子:

<html> 
<head> 
<title>77.htm文件</title> 
</head> 
<body> 
<textarea wrap="off" onfocus="alert(‘offsetWidth:‘+this.offsetWidth+‘/n clientWidth:‘+this.clientWidth);"></textarea> 
</body> 
</html>

offsetWidth的值总是比clientWidth的值大。 
clientWidth是对象看到的宽度(不含边线) 
offsetWidth是对象看到的宽度(含边线,如滚动条的占用的宽)

【转载】http://blog.csdn.net/weinideai/article/details/3880600

时间: 2024-11-05 17:31:09

【clientX,offsetX,screenX】 【scrollWidth,clientWidth,offsetWidth】的区别的相关文章

Javascript:scrollWidth,clientWidth,offsetWidth的区别(转)

网页可见区域宽:document.body.clientWidth; 网页可见区域高:document.body.clientHeight; 网页可见区域高:document.body.offsetWeight: 网页可见区域高:document.body.offsetHeight; 网页正文全文宽:document.body.scrollWidth; 网页正文全文高:document.body.scrollHeight; 网页被卷去的高:document.body.scrollTop; 网页被

scrollWidth,clientWidth,offsetWidth的区别

scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大. clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变. offsetWidth:对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变. 情况1: 元素内无内容或者内容不超过可视区,滚动不出现或不可用的情况下. scrollWidth=clientWidth,两者皆为内容可视区的宽度. offsetWidth为元素的实际宽度. 情况2: 元素的内容超

【转】一张图轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别

转自:http://www.2cto.com/kf/201409/333401.html 总是会被javascript的event对象的clientX,offsetX,screenX,pageX 弄得头晕,于是决定做个图来区分一下(画得我手那个酸呀....) 先总结下区别: event.clientX.event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性 event.pageX.event.pageY

js event对象的clientX,offsetX,screenX和pageX的区别

总是会被javascript的event对象的clientX,offsetX,screenX,pageX 弄得头晕,于是决定做个图来区分一下(画得我手那个酸呀....) 先总结下区别: event.clientX.event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性 event.pageX.event.pageY 类似于event.clientX.event.clientY,但它们使用的是文档坐标而非

轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别

总是会被javascript的event对象的clientX,offsetX,screenX,pageX 弄得头晕 先总结下区别: event.clientX.event.clientY 鼠标相对浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性 event.pageX.event.pageY 类似于event.clientX.event.clientY,但它们使用的是文档坐标而非窗口坐标.这2个属性不是标准属性,但得到了广泛支持.IE

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解

HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解 scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度 offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度

scrollLeft,scrollWidth,clientWidth,offsetWidth详解

HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解 scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离scrollWidth:获取对象的滚动宽度offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度offs

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth完全详细的说明

HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth具体指完全解释究竟哪里的距离scrollHeight: 获取对象的高度滚动. scrollLeft:设置或获取位于对象左边界和窗体中眼下可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗体中可见内容的最顶端之间的距离scrollWidth:获取对象的滚动宽度offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度offset

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之全然具体解释

HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth究竟指的哪到哪的距离之全然具体解释scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗体中眼下可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗体中可见内容的最顶端之间的距离scrollWidth:获取对象的滚动宽度offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度off

scrollWidth clientWidth offsetWidth

scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大.        实际内容+padding                 不包括边框clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变.     可视区内容content+padding    不包括边框offsetWidth:对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变.              能看得见的 包括边框   该demo就在