您的位置:首页 > 其它

深刻认识clientX,offsetX,screenX

2012-04-11 22:27 295 查看
概念(来源于网络):

clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。

clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。

offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。

offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。

screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。

screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。

x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标。

y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标

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

view plaincopy to clipboardprint?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<BODY onclick='test()' style="margin:0 0 0 0" mce_style="margin:0 0 0 0">

<font color=green>设置或获取鼠标指针位置相对于窗口客户区域的 x,y 坐标,其中客户区域不包括窗口自身的控件和滚动条。</font>

<br/>

clientX=<INPUT TYPE="text" NAME="x1">

clientY=<INPUT TYPE="text" NAME="x2">

<br/>

<br/>

<font color=blue>设置或获取鼠标指针位置相对于触发事件的对象的 x,y 坐标。 </font>

<br/>

offsetX =<INPUT TYPE="text" NAME="x3">

offsetY =<INPUT TYPE="text" NAME="x4">

<br/>

<br/>

<font color=green>设置或获取获取鼠标指针位置相对于用户屏幕的 x,y 坐标 </font>

<br/>

screenX =<INPUT TYPE="text" NAME="x5">

screenY =<INPUT TYPE="text" NAME="x6">

<br/>

<br/>

<font color=blue>设置或获取鼠标指针位置相对于父文档的 x,y 像素坐标。</font>

<br/>

x=<INPUT TYPE="text" NAME="x7">

y=<INPUT TYPE="text" NAME="x8">

<br/>

<br/>

<TABLE align="center" width=400 height=500 border=1 style="border-style:none" mce_style="border-style:none" CELLPADDING=0 CELLSPACING=0 onclick='test()'>

<TR>

<TD>a</TD>

<TD>b</TD>

</TR>

<TR>

<TD>c</TD>

<TD>d</TD>

</TR>

</TABLE>

</body>

</html>

<SCRIPT LANGUAGE="JavaScript">

<!--

function test(){

document.all.x1.value=event.clientX;

document.all.x2.value=event.clientY;

document.all.x3.value=event.offsetX;

document.all.x4.value=event.offsetY;

document.all.x5.value=event.screenX;

document.all.x6.value=event.screenY;

document.all.x7.value=event.x;

document.all.x8.value=event.y;

}

//-->

</SCRIPT>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<BODY onclick='test()' style="margin:0 0 0 0" mce_style="margin:0 0 0 0">

<font color=green>设置或获取鼠标指针位置相对于窗口客户区域的 x,y 坐标,其中客户区域不包括窗口自身的控件和滚动条。</font>

<br/>

clientX=<INPUT TYPE="text" NAME="x1">

clientY=<INPUT TYPE="text" NAME="x2">

<br/>

<br/>

<font color=blue>设置或获取鼠标指针位置相对于触发事件的对象的 x,y 坐标。 </font>

<br/>

offsetX =<INPUT TYPE="text" NAME="x3">

offsetY =<INPUT TYPE="text" NAME="x4">

<br/>

<br/>

<font color=green>设置或获取获取鼠标指针位置相对于用户屏幕的 x,y 坐标 </font>

<br/>

screenX =<INPUT TYPE="text" NAME="x5">

screenY =<INPUT TYPE="text" NAME="x6">

<br/>

<br/>

<font color=blue>设置或获取鼠标指针位置相对于父文档的 x,y 像素坐标。</font>

<br/>

x=<INPUT TYPE="text" NAME="x7">

y=<INPUT TYPE="text" NAME="x8">

<br/>

<br/>

<TABLE align="center" width=400 height=500 border=1 style="border-style:none" mce_style="border-style:none" CELLPADDING=0 CELLSPACING=0 onclick='test()'>

<TR>

<TD>a</TD>

<TD>b</TD>

</TR>

<TR>

<TD>c</TD>

<TD>d</TD>

</TR>

</TABLE>

</body>

</html>

<SCRIPT LANGUAGE="JavaScript">

<!--

function test(){

document.all.x1.value=event.clientX;

document.all.x2.value=event.clientY;

document.all.x3.value=event.offsetX;

document.all.x4.value=event.offsetY;

document.all.x5.value=event.screenX;

document.all.x6.value=event.screenY;

document.all.x7.value=event.x;

document.all.x8.value=event.y;

}

//-->

</SCRIPT>

实验结果分析:

clientX 和x值在实验过程中,没有发现值不一样的例子,所以我认为它们在效果上是一样的!

offsetX 是相对于当前窗口内,本触发事件对象(或者是某一区域)而言,如本例中你单击a区域,值是相对于a所在<td>区域而言,同理b,c,d都一样!

clientX ,x,offsetX共同点:它们都是想对于相对位置,只是offsetX是相对于触发对象的父容器而言!

screenX是相对与客户端显示器而言,是绝对位置!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: