2011-05-08 88 views
3

我正在創建一個我希望在移動設備上可用的Web應用程序。 該應用程序的初始機制需要鼠標的當前X/Y座標 - 不需要點擊和拖動,只需在瀏覽器窗口周圍移動鼠標即可。iOS /移動設備的X/Y觸摸座標

現在我一直在尋找各種有關觸摸和手勢的jQuery/JavaScript庫,但我無法找到任何適合我的內容。

所以基本上我正在尋找一種方法來獲得單手指觸摸/拖動的x/y位置。

例如:在0,0處觸摸屏幕,然後按住並將其拖動到480,320。這些值將在x1,y1到x2,y2之間插值。

謝謝。

回答

4

你不應該爲此需要一個庫,使用touchstart,touchmove和touchend事件編寫你自己的代碼是相當容易的。

http://www.sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/

作爲一個側面說明,如果你使用了iOS模擬器進行測試,要知道,它有時會提供不正確的座標的方式,實際的設備不會,所以你總是需要保持物理iOS設備的便利,以驗證您的代碼是否有效。

+2

+1而且還應包括蘋果官方DOCO:[http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safariwebcontent/HandlingEvents/HandlingEvents.html](http: //developer.apple.com/library/safari/#documentation/appleapplications/reference/safariwebcontent/HandlingEvents/HandlingEvents.html)。首先編寫一個小型事件記錄器,看看哪些事件是由什麼手勢和按什麼順序觸發的。 – RobG 2011-05-09 00:40:16

+0

感謝您的鏈接。我也發現了這個:http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/ – tamago 2011-05-11 23:02:43

10
$(function() { 
    var $log = $("#log"); 

    function updateLog(x, y) { 
     $log.html('X: '+x+'; Y: '+y); 
    } 

    document.addEventListener('touchstart', function(e) { 
     updateLog(e.changedTouches[0].pageX, e.changedTouches[0].pageY); 
    }, false); 

    document.addEventListener('touchmove', function(e) { 
     e.preventDefault(); 
     updateLog(e.targetTouches[0].pageX, e.targetTouches[0].pageY); 
    }, false); 
});