zoukankan      html  css  js  c++  java
  • 深刻认识clientX,offsetX,screenX

    概念(来源于网络):

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

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

    <!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>
    

    实验结果分析:

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

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

    3. clientX ,x,offsetX共同点:它们是相对位置,相对于当前窗口,只是offsetX相对于当前窗口的某个触发对象的父容器而言!

    4. screenX是相对与客户端显示器而言,是绝对位置!

  • 相关阅读:
    过滤字符串
    sql业务分割
    如何用core自动创建model,与数据库连接
    记录日志
    easyui获取选中行上一行的数据
    获取天气插件代码
    粘包问题
    网络编程
    异常处理
    isinstance和issubclass、元类、反射
  • 原文地址:https://www.cnblogs.com/webqiand/p/4607907.html
Copyright © 2011-2022 走看看