这是我的JavaScript:
$("window").bind("touchstart", function ()
{
var org = e.originalEvent.touches[0];
var x = orig.changedTouches[0].pageX;//relative position of html,body document
var y = orig.changedTouches[0].pageY;//relative position of html,body document
var x0 = x - window.scrollX;
var y0 = y - window.scrollY;
alert(x0);
alert(y0);
});
x
和y
适用于相对于HTML body
元素的坐标,所以目前,
我需要偏移window.scrollX
或window.scrollY
;
我的问题是在滚动过程中,用户经常触摸设备,使x0和y0以实时方式不正确。
我尝试使用position:fixed
添加全屏透明叠加div元素,并获取相对于该坐标的坐标:
$("overlayDIV").bind("touchstart",..
然而,结果是一样的。
无论如何在移动设备窗口上获取touchstart事件的绝对坐标?
我的环境是iOS 5.x + phoneGap / Cordova2.0 + jQuery1.8.8。
EDIT1
我已经为touchstart事件尝试了$(window)
。问题是jQuery元素是什么,例如$(window)
或全屏透明层,结果是相对于html,body
的坐标。
EDIT2
根据 http://api.jquery.com/category/events/event-object/
event.pageX
The mouse position relative to the left edge of the document.
event.pageY
The mouse position relative to the top edge of the document.
只要我们使用pageX属性,返回将始终是文档的相对位置。它可能听起来不错,但问题是它实际上是 html,body document 的相对位置。