参考:http://www.cnblogs.com/xesam/archive/2011/12/08/2280509.html
测试结果如下:
chrome:
e.pageX——相对整个页面的坐标
e.layerX——相对当前坐标系的border左上角开始的坐标
e.offsetX——相对当前坐标系的border左上角开始的坐标
e.clientX——相对可视区域的坐标
e.x——相对可视区域的坐标
ff:
e.pageX——相对整个页面的坐标
e.layerX——相对当前坐标系的border左上角开始的坐标
e.offsetX——无
e.clientX——相对可视区域的坐标
e.x——无
opera:
e.pageX——相对整个页面的坐标
e.layerX——无
e.offsetX——相对当前坐标系的内容区域左上角开始的坐标
e.clientX——相对可视区域的坐标
e.x——相对可视区域的坐标
safari:(这个和chrome是一样的)
e.pageX——相对整个页面的坐标
e.layerX——相对当前坐标系的border左上角开始的坐标
e.offsetX——相对当前坐标系的border左上角开始的坐标
e.clientX——相对可视区域的坐标
e.x——相对可视区域的坐标
IE9:
e.pageX——相对整个页面的坐标
e.layerX——相对当前坐标系的border左上角开始的坐标 + 滚动条滚过的距离(这个NB轰轰了····=。=)
e.offsetX——相对当前坐标系的内容区域左上角开始的坐标
e.clientX——相对可视区域的坐标
e.x——相对当前坐标系的border左上角开始
IE8:
e.pageX——无
e.layerX——无
e.offsetX——相对当前坐标系的内容区域左上角开始的坐标
e.clientX——相对可视区域的坐标
e.x——相对当前坐标系的border左上角开始
IE7:
e.pageX——无
e.layerX——无
e.offsetX——相对当前坐标系的内容区域左上角开始的坐标
e.clientX——相对可视区域的坐标
e.x——相对当前坐标系的border左上角开始
IE6:
e.pageX——无
e.layerX——无
e.offsetX——相对当前坐标系的内容区域左上角开始的坐标
e.clientX——相对可视区域的坐标
e.x——相对当前坐标系的border左上角开始
综合为下表:
插入表格不方便,鸭梨很大啊
其中clientX是W3C标准的一个属性,所以都挺符合的,其他的就看浏览器厂商的心情了。
对于非IE6/7/8来说,pageX属性都可以获取到鼠标事件发生处到整个页面左边的坐标,IE6/7/8就只能通过clientX+scrollLeft来获得相同的结果。
需要注意的是layerX和x这两个属性。
event.x本来是IE的,但是除了FF之外,其他的也都实现了这个属性,但是opera,chrome和safari和IE的实现并不一致,opera,chrome和safari的event.x返回值和event.clientX相同
opera没有实现layerX,IE9实现了,但是IE9又是个奇葩,layerX实现得稀奇古怪。
layerX与offsetX
除了ff,其他浏览器都实现了offsetX,opera跟随IE系列,与IE实现相同,就是从内容区域边界开始算起,就是上面图示中的B点,chrome和safari从border边界开始算起,就是上面图示中的A点。
除了上面的一些区别,另外一个重要区别就是各个浏览器默认的边界零点也不一致,计算的时候还需要根据浏览器不同来补充或删减。
相关推荐
在上面的代码中,`MainWindow_MouseMove`方法会在鼠标在主窗口移动时被调用。`e.GetPosition(this)`会返回鼠标相对于窗口的当前位置。 但是,这仅仅是相对于窗口的位置,而不是屏幕。要获取相对于屏幕的坐标,我们...
标题“当鼠标悬停在文本上面的时候显示相对位置的div”描述了一种常见的用户界面(UI)设计技术,即使用JavaScript或者CSS来实现动态效果。这种效果使得当用户将鼠标光标悬停在特定文本上时,一个div元素会出现在...
Unity3D 实现在单击鼠标位置创建物体2 Unity3D 是一个功能强大的游戏引擎,可以实现各种复杂的游戏逻辑。今天,我们将探讨如何在 Unity3D 中实现单击鼠标位置创建物体的功能。 首先,我们需要了解 Unity3D 的事件...
在上面的代码中,我们可以看到,射线检测函数被用于检测从摄像机屏幕上的一个点射出的一条射线是否与场景中的 collider 碰撞。 三、计算夹角 在 Unity 3D 中,计算夹角是指计算从角色当前位置到目标点的向量与角色...
"设置窗口位置_"是另一个关键的函数,用于改变窗口在屏幕上的位置。在创建动态提示窗口时,可能需要根据鼠标的当前位置来调整提示窗口的位置,确保提示信息紧邻鼠标指针。这个函数通常接收窗口句柄和新的坐标值作为...
它通过软件算法,使得鼠标在达到屏幕边界时能够跨屏移动,无需用户手动调整鼠标位置到下一个显示器。这种设计特别适合那些经常需要在多个屏幕之间切换工作的用户,例如程序员、设计师或数据分析师。 “多屏使用者...
在网页设计中,"图片滚动效果,鼠标移至上面图片放大并跟随移动"是一种常见的交互设计,它能够提升用户体验,使网站更具吸引力。这种效果通常应用于产品展示、相册浏览等场景,让用户能够更直观地查看图片细节。下面...
在本文中,我们将深入探讨如何使用Qt框架来实现图像的读取、鼠标位置下的图像缩放以及图像的移动。Qt是一个跨平台的应用程序开发框架,广泛应用于GUI编程,支持多种操作系统,包括Windows、Linux和macOS等。 首先,...
// 获取鼠标当前的屏幕位置 QPoint pos = event->pos(); // 在这里可以输出或显示鼠标的位置信息 qDebug() () ," (); // 如果需要更新界面,调用update()方法,触发paintEvent update(); } ``` 在上面的...
通过这种方式,我们可以同时显示鼠标在窗体坐标系和屏幕坐标系的位置。 以上就是如何在C#的Windows Forms应用程序中跟踪鼠标在窗体中的坐标的基本方法。这个功能可以应用于各种场景,例如在绘制工具中显示画笔位置...
鼠标截图通常涉及跟随鼠标移动并捕捉鼠标的当前位置。这种情况下,可能会出现“闪屏”现象,这是因为每次鼠标移动都会触发重绘,导致屏幕闪烁。为解决这个问题,可以使用双缓冲技术,或者在截图过程中禁用窗口的更新...
在IT领域,尤其是在软件开发中,获取和处理鼠标轨迹是一项常见的任务。对于C++程序员来说,这涉及到操作系统级别的事件处理和编程。在这个“C++ 鼠标轨迹(坐标)捕捉代码”项目中,我们主要关注如何在VC++环境下...
本示例主要探讨如何在MFC应用中处理鼠标移动消息,以便实时显示鼠标的坐标位置。以下是对这个主题的详细解释: 一、鼠标消息处理 Windows系统通过消息机制与应用程序交互,其中包括鼠标消息。当鼠标在窗口内移动时...
例如,可以创建一个窗体,上面放置各种可视化控件,如标签、图形或其他指示器,来表示鼠标的位置、按键状态等。当通过鼠标Hook捕获到事件时,这些控件的属性或状态就会相应更新,形成一种动态的可视化效果。 为了...
当鼠标移动时,我们需要获取鼠标的当前位置并将其转换为屏幕坐标。 3. **直线算法**: 绘制直线最常用的方法是Bresenham算法,这是一种优化的像素级画线算法,适用于离散的像素网格。在源代码中,可能会根据鼠标...
"鼠标跟随事件"是一种常见的用户交互事件,它允许元素在屏幕上随着鼠标的移动而移动,为用户提供直观的反馈。这个概念主要适用于Web开发和图形用户界面(GUI)应用。 在JavaScript中,我们可以使用`mousemove`事件...
在`OnLButtonDown()`和`OnMouseMove()`中,使用`GetCursorPos()`获取鼠标的屏幕坐标,然后通过`ScreenToClient()`转换为视图的客户区坐标。 5. **绘制三角形**: 在`OnLButtonUp()`中,使用`pDC->MoveTo()`和`pDC...
- `OnMouseDown` 和 `OnMouseMove` 事件处理程序:用于捕捉用户的鼠标点击和移动,根据画笔的当前状态(颜色和粗细)在屏幕上绘制线条。 - `OnMouseUp` 事件处理程序:用于结束当前线条的绘制。 - `ColorDialog....
这对于移动端网页尤其适用,因为它可以在节省屏幕空间的同时,保持导航的可用性,提高用户的浏览体验。 总结来说,"随着页面鼠标的滑动页眉页脚导航栏的自动隐藏与显示"是一种现代网页设计技术,它利用HTML5、CSS3...
在IT领域,获取屏幕指定点颜色是一项常见的任务,特别是在图形用户界面(GUI)开发、游戏编程或者色彩分析等应用场景中。这个功能允许用户或程序实时获取显示器上任何位置像素的RGB(红绿蓝)颜色值。RGB是数字图像...