2

这是我的 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适用于相对于 HTMLbody元素的坐标,所以目前,我需要偏移window.scrollXor window.scrollY;

我的问题是,在滚动过程中,用户经常触摸设备,导致 x0 和 y0 实时不正确。

我尝试使用添加全屏透明覆盖 div 元素position:fixed,并获取相对于该元素的坐标:

 $("overlayDIV").bind("touchstart",..

然而,结果是一样的。

无论如何要在移动设备窗口上获取touchstart事件的绝对坐标?

我的环境是 iOS 5.x + phoneGap/Cordova2.0 + jQuery1.8.8。

编辑1

我已经尝试$(window)过 touchstart 事件。问题是无论 jQuery 元素是什么,例如$(window)全屏透明层,结果都是相对于html,body.

编辑2

根据 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 的相对位置

4

0 回答 0