我正在创建一个需要跨浏览器兼容的移动网站。对于一项功能,我需要检测触摸事件的位置。
Windows Phone 不支持 touchstart 等,所以我改用 mousedown,但我无法从事件中获取页面位置。它在桌面上没有问题,并且在 windows phone 上检测到鼠标按下,但我不知道如何获得 offsetX - offset Y。
这是一个适用于桌面和 iPhone 和 android 的示例(我使用的是 jQuery,但没有插件或任何非标准的东西):
$("div").on("touchstart mousedown", function(e){
org_x = e.originalEvent.changedTouches[0].pageX ? e.originalEvent.changedTouches[0].pageX : e.originalEvent.offsetX;
alert(org_x);
org_y = e.originalEvent.changedTouches[0].pageY ? e.originalEvent.changedTouches[0].pageY : e.originalEvent.offsetY;
alert(org_y);
});
我已经在 windows phone 8 和 9 上测试过了