2014-02-10 71 views
0

我正在構建一個使用quo.js處理觸摸事件的Web應用程序。使用quo.js觸摸滑動座標

當用戶刷卡(拖拽)用一個手指,我可以使用下面的代碼quo.js認識到這一點,並應用CSS轉換:

$$('element').swipe(function() { 
    $('element').vendor('transform','translate(-100px,-100px)'); 
}); 

現在我想做的是應用翻譯數額基於刷卡量。換句話說,我需要獲取滑動的X/Y座標。有誰知道這是可能的使用quo.js或我需要使用不同的js庫嗎?

我想這讓座標,但它返回「未定義」:

$$('element').swipe(function(e) { 
    alert(e.pageX); 
}); 

回答

3

事件對象quo.js傳遞給回調包含currentTouch對象持有x和y座標:http://jsfiddle.net/marionebl/UupmU/1/

$$('selector').swipe(function(e){ 
    console.log('swipe'); 
    console.log(e.currentTouch); // Gives position when gesture is cancelled 
}); 

請注意,滑動事件僅在滑動手勢完成時觸發。據我瞭解您的使用情況下,將使用swiping事件,該事件一旦觸發被檢測到滑動手勢,並在所有的動作,直到釋放出更多的方便:

var $swipeable = $$('.swipeable'), 
    swipeableHeight = $swipeable.height(), 
    swipeableWidth = $swipeable.width(); 

$swipeable.swiping(function(e){ 
    var x = e.currentTouch.x - swipeableWidth/2; 
    var y = e.currentTouch.y - swipeableHeight/2; 

    $swipeable 
    .vendor('transform', 'translate(' + x +'px,'+ y +'px)'); 
}); 
+0

如果我有能力,我會給你一個十億分以上的分數。我想我的腦出血花費了幾個小時試圖解決這個問題。非常感謝! – Coop

+0

出於興趣,您是如何知道currentTouch的?我無法在任何地方找到任何文檔! – Coop

+0

'console.log':由於quo.js適用於桌面瀏覽器,因此您可以簡單地執行'$ el.on('event',console.log)'並查看瀏覽器的js控制檯中傳遞給事件處理程序的內容。我更喜歡Chrome開發工具(通過View - Developer - Javascript控制檯打開),但所有現代瀏覽器都具有體面的調試功能。 – marionebl