如何获得当前鼠标的位置坐标

如何获得当前鼠标的位置坐标,第1张

有两种方法

1 用组件的title属性, 这个是HTML中自带的提示属性, 当鼠标停留在组件上的时候, 就会d出提示, 比如<div title="小明">name</div>, 当鼠标停留在div上的时候, 就会有一个小黄框, 显示"小明"

2上面的提示框很不好看, 而且功能很固定, 所以你可以在组建上加一个onmouseover的事件, 记录鼠标的位置, 我写了一个例子, 你看看是不是你需要的:

<script>

var mouseX;

var mouseY;

function showName() {

var infoDiv = documentgetElementById('infoDiv');

infoDivinnerHTML = 'This is the name!';

infoDivstyleleft = mouseX;

infoDivstyletop = mouseY;

infoDivstyledisplay = "block";

吸使用以下几种方式获取:

1PageX/PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化

2clientX/clientY:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化

可是悲剧的是,PageX只有FF特有,IE这个悲剧没有啊T_T,所以大牛们想出了一个办法

PageY=clientY+scrollTop-clientTop;(只讨论Y轴,X轴同理,下同)

3screenX/screenY:鼠标在屏幕上的位置,从屏幕左上角开始(w3c标准)

4offsetX/offsetY:IE特有,鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有boder,可能出现负值

5

layerX/layerY:FF特有,鼠标相比较于当前坐标系的位置,即如果触发元素没有设置绝对定位或相对定位,以页面为参考点,如果有,将改变参考坐标系,从触发元素盒子模型的border区域的左上角为参考点也就是当触发元素设置了相对或者绝对定位后,layerX和offsetX就幸福地生活在一起^-^,几乎相等,唯一不同就是一个从border为参考点,一个以内容为参考点

chrome和safari一条龙通杀!完全支持所有属性其中(offsetX和layerX都是以border为参考点)

下面这个是获取相对于屏幕的坐标

documentonmousemove=function(e){e=e e:windowevent;documentwriteln("X:"+escreenX+"Y:"+escreenY);}

获取鼠标当前位置只需:pageX、pageY即可。

具体步骤如下:

1、新建一个html代码页面,在这个html页面找到<body>,然后在这个<body>里创建一个用来显示坐标位置的<div>,并给这个<div>添加一个id。

创建<div>的代码:<div id="point-loc"></div>

2、使用pageX、pageY获取鼠标当前位置。在<title>标签后面新建一个<script>,创建鼠标移动时获取鼠标当前的位置。

js代码:<script type="text/javascript">

documentonmousemove = function(e){

var loc = "当前位置 x:"+epageX+",y:"+epageY

documentgetElementById("point-loc")innerHTML = loc;

}

</script>

3、保存html后使用浏览器打开即可得到鼠标位置

使用以上方法即可获取鼠标位置哦。

可以用ControlMousePosition获得当前鼠标的坐标,使用PointToClient计算鼠标相对于某个控件的坐标,如下

Point

screenPoint

=

ControlMousePosition;//鼠标相对于屏幕左上角的坐标

Point

formPoint

=

thisPointToClient(ControlMousePosition);//鼠标相对于窗体左上角的坐标

Point

contextMenuPoint

=

contextMenuStrip1PointToClient(ControlMousePosition);

//鼠标相对于contextMenuStrip1左上角的坐标

想要获取鼠标坐标并不容易,还是一样需要调用两个API函数GetCursorPos() 获取鼠标指针位置(屏幕坐标)然后采用ScreenToClient() 将鼠标指针位置转换为窗口坐标输出即可。上例子。

// 程序名称:通过 API 获取鼠标状态

//

#include <graphicsh>

#include <stdioh>

void main()

{

initgraph(640, 480); // 初始化绘图窗口

HWND hwnd = GetHWnd(); // 获取绘图窗口句柄

POINT point;

TCHAR s[10];

while(true)

{

GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标)

ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标

// 获取鼠标按键状态可以用 GetAsyncKeyState 函数,这里不再详述。

// 输出鼠标坐标

sprintf(s, _T("%05d"), pointx);

outtextxy(0, 0, s);

sprintf(s, _T("%05d"), pointy);

outtextxy(0, 20, s);

// 适当延时

Sleep(10);

}

}

同样运行环境需要安装EasyX。

ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。

函数调用形式为:

yi=spline(x,y,xi);

这个是根据己知的x,y数据,用样条函数插值出xi处的值。即由x,y的值计算出xi对应的函数值。

而pp=spline(x,y);

是由根据己知的x,y数据,求出它的样条函数表达式。

摘自: >

CPoint

pt;

::GetCursorPos(&pt);

这样就可以得到当前鼠标的位置了,(ptx,pty)。

要获得鼠标点击时的坐标不用自己获得的,MFC的消息映射函数的参数中有鼠标位置的这个参数的。

以上就是关于如何获得当前鼠标的位置坐标全部的内容,包括:如何获得当前鼠标的位置坐标、js怎么获得鼠标当前坐标、怎样获取当前鼠标位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9651572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存