深刻认识clientX,offsetX,screenX

概念(来源于网络):

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

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

view plaincopy to clipboardprint?

Code:
  1. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
  2. <HTML>
  3. <BODYonclick='test()'style="margin:0000"mce_style="margin:0000">
  4. <fontcolor=green>设置或获取鼠标指针位置相对于窗口客户区域的x,y坐标,其中客户区域不包括窗口自身的控件和滚动条。</font>
  5. <br/>
  6. clientX=<INPUTTYPE="text"NAME="x1">
  7. clientY=<INPUTTYPE="text"NAME="x2">
  8. <br/>
  9. <br/>
  10. <fontcolor=blue>设置或获取鼠标指针位置相对于触发事件的对象的x,y坐标。</font>
  11. <br/>
  12. offsetX=<INPUTTYPE="text"NAME="x3">
  13. offsetY=<INPUTTYPE="text"NAME="x4">
  14. <br/>
  15. <br/>
  16. <fontcolor=green>设置或获取获取鼠标指针位置相对于用户屏幕的x,y坐标</font>
  17. <br/>
  18. screenX=<INPUTTYPE="text"NAME="x5">
  19. screenY=<INPUTTYPE="text"NAME="x6">
  20. <br/>
  21. <br/>
  22. <fontcolor=blue>设置或获取鼠标指针位置相对于父文档的x,y像素坐标。</font>
  23. <br/>
  24. x=<INPUTTYPE="text"NAME="x7">
  25. y=<INPUTTYPE="text"NAME="x8">
  26. <br/>
  27. <br/>
  28. <TABLEalign="center"width=400height=500border=1style="border-style:none"mce_style="border-style:none"CELLPADDING=0CELLSPACING=0onclick='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. <SCRIPTLANGUAGE="JavaScript">
  41. <!--
  42. functiontest(){
  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>
  54. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
  55. <HTML>
  56. <BODYonclick='test()'style="margin:0000"mce_style="margin:0000">
  57. <fontcolor=green>设置或获取鼠标指针位置相对于窗口客户区域的x,y坐标,其中客户区域不包括窗口自身的控件和滚动条。</font>
  58. <br/>
  59. clientX=<INPUTTYPE="text"NAME="x1">
  60. clientY=<INPUTTYPE="text"NAME="x2">
  61. <br/>
  62. <br/>
  63. <fontcolor=blue>设置或获取鼠标指针位置相对于触发事件的对象的x,y坐标。</font>
  64. <br/>
  65. offsetX=<INPUTTYPE="text"NAME="x3">
  66. offsetY=<INPUTTYPE="text"NAME="x4">
  67. <br/>
  68. <br/>
  69. <fontcolor=green>设置或获取获取鼠标指针位置相对于用户屏幕的x,y坐标</font>
  70. <br/>
  71. screenX=<INPUTTYPE="text"NAME="x5">
  72. screenY=<INPUTTYPE="text"NAME="x6">
  73. <br/>
  74. <br/>
  75. <fontcolor=blue>设置或获取鼠标指针位置相对于父文档的x,y像素坐标。</font>
  76. <br/>
  77. x=<INPUTTYPE="text"NAME="x7">
  78. y=<INPUTTYPE="text"NAME="x8">
  79. <br/>
  80. <br/>
  81. <TABLEalign="center"width=400height=500border=1style="border-style:none"mce_style="border-style:none"CELLPADDING=0CELLSPACING=0onclick='test()'>
  82. <TR>
  83. <TD>a</TD>
  84. <TD>b</TD>
  85. </TR>
  86. <TR>
  87. <TD>c</TD>
  88. <TD>d</TD>
  89. </TR>
  90. </TABLE>
  91. </body>
  92. </html>
  93. <SCRIPTLANGUAGE="JavaScript">
  94. <!--
  95. functiontest(){
  96. document.all.x1.value=event.clientX;
  97. document.all.x2.value=event.clientY;
  98. document.all.x3.value=event.offsetX;
  99. document.all.x4.value=event.offsetY;
  100. document.all.x5.value=event.screenX;
  101. document.all.x6.value=event.screenY;
  102. document.all.x7.value=event.x;
  103. document.all.x8.value=event.y;
  104. }
  105. //-->
  106. </SCRIPT>

实验结果分析:

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


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/weinideai/archive/2009/02/13/3885444.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值