过去几天我一直在研究我的第一个HMLT5游戏原型,我需要让它在桌面和移动设备上运行。问题是,我是Web开发的新手。
要获取相对于画布的鼠标/触摸位置,我已使用e.layerX
或e.offsetX
停止并开始使用this method。我甚至添加了<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
。
但即便如此,旋转屏幕时触控坐标也会偏移,而Dolphin也会以非常奇怪的方式对待触控。
有没有一般的方法来解决这个问题?我不熟悉这些技术,所以可能使用jQuery或类似的东西?
修改:此外,pageX
screenX
和clientX
都返回相同的值。不知道为什么,我使用了e.touches[0].clientX
。
Edit2:我想我已经解决了。如果屏幕旋转,我忘了再次拨打findPos(obj);
。我甚至不想在没有元标记的情况下测试它,我现在就这样做了。
答案 0 :(得分:4)
我使用它(通过JQuery)将我的鼠标位置放在画布中,相对于画布:
canvas.mousemove(function(e){
mmouseX = e.pageX-canvas.position().left;
mmouseY = e.pageY-canvas.position().top;
}
在Android默认浏览器上尝试过,它可以正常工作,也可以在桌面上运行。从来没有尝试过Dolphin。