获取画布内的相对触摸坐标

时间:2012-10-03 15:01:25

标签: javascript html5 mobile canvas

过去几天我一直在研究我的第一个HMLT5游戏原型,我需要让它在桌面和移动设备上运行。问题是,我是Web开发的新手。

要获取相对于画布的鼠标/触摸位置,我已使用e.layerXe.offsetX停止并开始使用this method。我甚至添加了<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">

但即便如此,旋转屏幕时触控坐标也会偏移,而Dolphin也会以非常奇怪的方式对待触控。

有没有一般的方法来解决这个问题?我不熟悉这些技术,所以可能使用jQuery或类似的东西?

修改:此外,pageX screenXclientX都返回相同的值。不知道为什么,我使用了e.touches[0].clientX

Edit2:我想我已经解决了。如果屏幕旋转,我忘了再次拨打findPos(obj);。我甚至不想在没有元标记的情况下测试它,我现在就这样做了。

1 个答案:

答案 0 :(得分:4)

我使用它(通过JQuery)将我的鼠标位置放在画布中,相对于画布:

canvas.mousemove(function(e){
    mmouseX = e.pageX-canvas.position().left;
    mmouseY = e.pageY-canvas.position().top;
}

在Android默认浏览器上尝试过,它可以正常工作,也可以在桌面上运行。从来没有尝试过Dolphin。