`
hduyou
  • 浏览: 23867 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

js 关于鼠标在页面中坐标显示的种种

阅读更多
首先先看一段代码
<html>
<head>
</head> 
<body> 
<script type="text/javascript"> 
function mouseCoordination(michael){ 
    //以下主要是对不同浏览器进行兼容操作
     if(michael.pageX || michael.pageY){ 
//IE不支持pageX之类的 这里主要是对于chrome 和firefox之类的浏览器
      return {x:michael.pageX, y:michael.pageY}; 
      } 
      else return { 
//以下是IE浏览器的操作动作 至于为什么这么写 待会看图就会明白
       x:michael.clientX + document.body.scrollLeft - document.body.clientLeft, 
       y:michael.clientY + document.body.scrollTop  - document.body.clientTop 
       }; 
	   
} 

function mouseMove(michael){ 
   michael = michael || window.event; //不知为什么 显示出来 就是多了个michael 应该前面变量只有一个michael的
    var mouseCoo = mouseCoordination(michael); 
    document.getElementById('xCoordination').value = mouseCoo.x; 
    document.getElementById('yCoordination').value = mouseCoo.y; 
} 
document.onmousemove = mouseMove; 
</script> 
X坐标:<input id="xCoordination" type="text" />  Y坐标:<input id="yCoordination" type="text" /> 
</body> 
</html>

关于javascript中clientX,pageX,offsetX,x,layerX,screenX,offsetLeft之类的图解说明


对clientX等的文字说明
offsetTop
获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算顶端位置。
offsetLeft
获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置。
offsetHeight
获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度。
IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。
NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。
offsetWidth
获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度。
offsetParent
获取定义对象 offsetTop 和 offsetLeft 属性的容器对象的引用。
clientHeight
获取对象的高度,不计算任何边距、边框、滚动条或可能应用到该对象的补白。
大家对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。
clientLeft
获取 offsetLeft 属性和客户区域的实际左边之间的距离。
clientTop
获取 offsetTop 属性和客户区域的实际顶端之间的距离。
clientWidth
获取对象的宽度,不计算任何边距、边框、滚动条或可能应用到该对象的补白。
SCROLL属性
scroll
设置或获取滚动是否关闭。
scrollHeight
获取对象的滚动高度。
scrollLeft
设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。
scrollTop
设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。
scrollWidth
获取对象的滚动宽度。event属性
x
设置或获取鼠标指针位置相对于父文档的 x 像素坐标。
screenX
设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标

W3C关于screen给出的例子
<html>
<head>
<script type="text/javascript">
function show_coords(event)
  {
  x=event.screenX
  y=event.screenY
  alert("X coords: " + x + ", Y coords: " + y)
  }
</script>
</head>
<body onmousedown="show_coords(event)">

<p>Click in the document. An alert box will alert 
the x and y coordinates of the cursor.</p>

</body>
</html>


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

W3C对于client给出的例子
<html>
<head>
<script type="text/javascript">
function show_coords(event)
  {
  x=event.clientX
  y=event.clientY
  alert("X coords: " + x + ", Y coords: " + y)
  }
</script>
</head>

<body onmousedown="show_coords(event)">
	
	<p>Click in the document. An alert box will alert 
the x and y coordinates of the mouse pointer.</p>

</body>
</html>



我们这里说说四种浏览器对 document.body 的 clientHeight、offsetHeight 和 scrollHeight 的解释,这里说的是 document.body,如果是 HTML 控件,则又有不同,点击这里查看。
这四种浏览器分别为IE(Internet Explorer)、NS(Netscape)、Opera、FF(FireFox)。
clientHeight
大家对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。
offsetHeight
IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。 NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。
scrollHeight
IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。 NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。 简单地说
clientHeight 就是透过浏览器看内容的这个区域高度。


NS、FF 认为 offsetHeight 和 scrollHeight 都是网页内容高度,只不过当网页内容高度小于等于 clientHeight 时,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。
IE、Opera 认为 offsetHeight 是可视区域 clientHeight 滚动条加边框。scrollHeight 则是网页内容实际高度。
同理
clientWidth、offsetWidth 和 scrollWidth 的解释与上面相同,只是把高度换成宽度即可。
但是
FF 在不同的 DOCTYPE 中对 clientHeight 的解释不同, xhtml 1 trasitional 中则不是如上解释的。其它浏览器则不存在此问题。

 
pageX/pageY:

鼠标相对于整个页面的X/Y坐标。

IE不支持!

offsetX/offsetY:

得出的结果跟pageX/pageY一样,既然如此,它有什么存在价值?因为:

只有IE支持!相当于IE下的pageX,pageY.

screenX/screenY:

就是鼠标在屏幕上的坐标。screenX,screenY的最大值不会超过你的屏幕分辨率。
clientX/clientY:

事件发生时鼠标在浏览器内容区域的X/Y坐标(不包含滚动条)。浏览器内容区域即浏览器窗口中用来显示网页的可视区域,注意这个可视,也就是说需要拖动滚动条才能看到的区域不算。当你将浏览器窗口缩小时,clientX/clientY的最大值也会缩小,但始终,它们的最大值不会超过你浏览器可视区域。

特别说明:IE下此属性不规范,它们的最小值不是0而是2,也就是说IE下的clientX/clientY与火狐下的始终大2px


分享到:
评论
4 楼 suiye007 2010-10-08  
其实重点就是那张图啊!
3 楼 webee 2010-10-08  
看的眼花啊!实际只要知道这些属性就可以了,用的时候测试一两次就明白了!
2 楼 hduyou 2010-09-30  
libmw 写道
很好,搜藏了

恩 欢迎共享
1 楼 libmw 2010-09-30  
很好,搜藏了

相关推荐

    跟随鼠标移动十字坐标显示,炫酷

    这个小功能可以在用户鼠标在页面上移动时,实时地显示一个十字架标记,指示出鼠标的当前位置,给人一种酷炫且个性化的视觉效果。 要实现这个功能,我们需要掌握以下几个核心知识点: 1. **JavaScript事件监听**:...

    JavaScript实现鼠标移到地图上显示实际地理坐标

    本教程将深入探讨如何利用SuperMap iClient 6R for JavaScript库来实现一个功能,即当鼠标移动到地图上时,实时显示当前鼠标的地理坐标。SuperMap是一款强大的GIS软件,其iClient系列为开发者提供了丰富的JavaScript...

    显示鼠标坐标信息.rar

    这个名为"显示鼠标坐标信息.rar"的压缩包显然包含了关于如何在网页上实时显示鼠标坐标的示例代码和教程。这个项目可能是一个简单的JavaScript(JS)特效,用于教育开发者如何利用JavaScript监听和处理鼠标移动事件,...

    qcustomplot鼠标点击后在坐标轴显示值

    当你需要在用户点击图表时显示鼠标位置对应的坐标轴值时,这是一个非常实用的功能,尤其对于数据分析和可视化至关重要。这个"qcustomplot鼠标点击后在坐标轴显示值"的主题就是关于如何实现这个功能的探讨。 首先,...

    javascript获取鼠标当前位置坐标并显示

    本文将详细介绍如何使用JavaScript来获取鼠标在页面上的当前位置坐标,并实时显示这些坐标值。该功能主要涉及到以下几个知识点: 1. **事件监听器(Event Listener)**:通过`document.onmousemove`来监听鼠标的...

    qt5 chart波形显示可缩放鼠标坐标显示

    在本文中,我们将深入探讨如何使用Qt5框架创建一个具有波形显示、可缩放以及鼠标坐标显示功能的图表应用。Qt5是一个流行的跨平台应用程序开发框架,它提供了丰富的图形用户界面(GUI)组件和工具,使开发者能够构建...

    鼠标位置 鼠标在屏幕的位置 坐标

    在探讨“鼠标位置 鼠标在屏幕的位置 坐标”这一主题时,我们深入研究如何在程序设计中获取并应用鼠标在屏幕上的位置坐标。这个知识点在游戏开发、图形用户界面(GUI)设计、自动化脚本以及任何需要与用户输入交互的...

    随鼠标移动动态显示xy坐标

    - **AJAX**: 异步JavaScript和XML技术,用于在不重新加载整个网页的情况下与服务器交换数据并更新部分网页内容。 - **DOM操作**: 通过修改文档对象模型(Document Object Model)来实现页面元素的动态变化。 ### 2....

    状态条中显示鼠标的设备坐标与逻辑坐标

    本篇文章将深入探讨“状态条中显示鼠标的设备坐标与逻辑坐标”的概念及其在VC矢量绘图中的应用。 首先,我们要明确什么是设备坐标和逻辑坐标。设备坐标是以像素为单位的坐标系统,直接对应于显示器的物理像素。当你...

    建立坐标系并显示鼠标位置

    在编程领域,尤其是在图形用户界面(GUI)的开发中,创建自定义的坐标系并实时显示鼠标的位置是一项常见的需求。这个程序可能应用于教学、数据分析、绘图软件等场景,允许用户直观地了解鼠标的坐标值。下面将详细...

    PyQt6鼠标标点示例程序 QLabel图片上获取鼠标坐标并显示红点

    ### PyQt6鼠标标点示例程序 QLabel图片上获取鼠标坐标并显示红点 本代码是使用PyQt6实现的图片上鼠标标点示例。用户可以通过鼠标点击在图片上标注点,并实时获取标注点的坐标。 ## 主要功能 1. **图片标注:** ...

    鼠标移动显示坐标点

    在计算机图形用户界面中,鼠标是用户与操作系统交互的重要工具,而“鼠标移动显示坐标点”这一功能则是开发者为了提供更精确的操作反馈所设计的一种机制。这个功能通常出现在图形编辑软件、游戏开发环境或者编程环境...

    使用Timer插件 实现鼠标坐标显示

    在C# Winform应用程序中,实现鼠标坐标的动态显示,我们可以利用Timer控件来定期获取鼠标的位置信息,并将其更新到界面上。Timer插件在Windows Forms应用程序中是一种非常实用的工具,它可以在指定的时间间隔内触发...

    利用消息机置来截获鼠标消息并显示鼠标坐标显示

    本文将深入探讨如何利用消息机制来截获鼠标消息,并实时显示鼠标在屏幕上的坐标。这是一项实用的技术,可以帮助开发者更好地理解和调试与鼠标交互相关的应用程序。 首先,我们需要了解Windows的消息系统。在Windows...

    VC++查看鼠标在图像选点坐标程序

    在本文中,我们将深入探讨如何使用VC++和MFC(Microsoft Foundation Classes)开发一个能够查看鼠标在图像上选点坐标的程序。这个程序的核心功能是显示图像,并实时更新鼠标光标所在位置的图像坐标,这对于图像处理...

    opengl实现鼠标坐标的显示

    本教程将详细介绍如何在OpenGL窗口中捕捉鼠标位置并显示坐标。 首先,你需要在VC++环境中创建一个OpenGL上下文。这通常通过MFC(Microsoft Foundation Classes)或Win32 API完成。创建一个带有OpenGL渲染区的窗口,...

    要在MFC项目中使用PCL库函数实现通过鼠标点击显示点云中点的坐标

    在MFC(Microsoft Foundation Classes)项目中,使用PCL(Point Cloud Library)库来处理点云数据并实现在用户点击鼠标时显示所选点在点云中的坐标,是一项常见的需求。PCL是一个开源的C++库,专门用于处理3D点云...

    获取鼠标在屏幕中的坐标的小程序

    获取鼠标在屏幕中的坐标,实时更新坐标位置,例如:鼠标放置在屏幕中任意位置,等待1s钟,可显示鼠标在屏幕中的坐标

    显示窗体在屏幕的坐标,鼠标在窗体上的坐标,无标题移动

    在VB6.0编程环境中,有时我们需要实现一些高级交互功能,比如显示窗体在屏幕上的具体位置、获取鼠标在窗体上的实时坐标,以及实现无标题栏但仍然可移动的窗体。这些功能在开发用户界面时能提供更好的用户体验。下面...

    VB得到窗体内鼠标的坐标,实时显示在标题栏.rar

    标题“VB得到窗体内鼠标的坐标,实时显示在标题栏.rar”揭示了一个VB(Visual Basic)编程的主题,涉及如何获取鼠标在窗口内的位置,并将这些坐标实时更新到窗口的标题栏上。这是一个基础的用户界面交互功能,对于...

Global site tag (gtag.js) - Google Analytics