これが私の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がリアルタイムで正しくないことです。
を使用してフルスクリーンの透明なオーバーレイ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、本文ドキュメントの相対的な位置です。