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);
    });

xyHTML要素を基準にした座標で機能するため、現在、または;bodyでオフセットする必要があります。window.scrollXwindow.scrollY

私の問題は、スクロールプロセス中に、ユーザーがデバイスに頻繁に触れるため、x0とy0がリアルタイムで正しくないことです。

を使用してフルスクリーンの透明なオーバーレイdiv要素を追加しposition:fixed、それに関連する座標を取得しようとしました。

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

ただし、結果は同じです。

モバイルデバイスウィンドウでタッチスタートイベントの絶対座標を取得する方法はありますか?

私の環境はiOS5.x+ phoneGap / Cordova2.0+jQuery1.8.8です。

編集1

私はすでに$(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、本文ドキュメントの相対的な位置です

4

0 に答える 0