从鼠标单击捕获X Y坐标(javascript)

时间:2015-03-31 21:43:23

标签: javascript

我知道这应该是问一个问题,得到一个答案(而且我认为我这样做,只是不确定我的清晰程度)。我被要求找到一种方法从鼠标点击捕获xy coords,然后将它们存储在数据库中。我想知道的是,如果一个人使用台式机,平板电脑,智能手机点击同一个地方,结果xy是否会相同?我想我问的原因是我的预感是他们不会是一样的。如果是这种情况,那么当从数据库中提取鼠标时,如何准确地映射所有鼠标点击的位置。我希望我在这里有意义(不太确定自己)。

全部谢谢!

2 个答案:

答案 0 :(得分:1)

当您获得点击(mousedown或触地,即时)事件的X / Y线时,它们以屏幕左侧和顶部的像素为单位。

由于手机,平板电脑,笔记本电脑和台式机的分辨率不同,因此它们的坐标不同。您可以做的是将其转换为%...假设您有一个图像,并且您希望您的用户能够标记某人...那么您可以将%坐标保存为:

x: 35%, y: 60%

1920x1080 => x: 672px (1920/100*35), y = 648px (1080/100*60)
600x400 => x: 210px (600/100*35), y = 240px (400/100*60)
...

这就是我要尝试的。

修改
正如@Binoy指出的那样,任何设备上的相同X / Y坐标都是相同的。但是在移动设备上,您可能需要滚动,因为该点位于视口之外。在我的回答中,我猜测,有某种响应式布局(如带有CSS max-width: 100%的图像),并且用户正在点击它。

答案 1 :(得分:0)

我不认为每个设备对于网页的特定点都有相同的xy坐标。如果是这种情况,即使没有响应式UI设计本身,每个Web都应该在所有设备中同等显示。因此,从一台设备中保存数据库中的xy坐标不是理想的情况,但我可以采取另一种方式,例如保存xy坐标和屏幕分辨率。因此,相同的分辨率设备将具有相同的xy坐标