2013-12-10 73 views
4

我試圖開發一個交互,我設計了一個html元素在縮放過程中被y縮放(縮放的高度),這樣元素的高度就變成了兩個手指之間的距離手勢。 現在,我試圖聽取一個捏,併發出警報,然後聽取一個捏出來,並與jQuery單獨警報。你知道如何做到這一點?也許沒有插件?運行js在捏;運行不同的js在捏出來

我試圖用兩個插件做到這一點。稍後再進行第一次嘗試。

第二次嘗試的問題在於,它表示捏合是捏出來的,甚至敲擊或敲擊都是捏不出來的。

我的第二次嘗試在這個JS小提琴:http://jsfiddle.net/hnabM/1/

這裏是在第二次嘗試中使用代碼:

//pinchZoom is the distance between the two fingers involved in the pinch 
var pinchIn = null; 
var dist = null; 
$('.pinch').swipe({ 
    pinchIn:function(event, direction, distance, duration, fingerCount, pinchZoom){ 
     dist = null; 
    }, 
    pinchOut:function(event, direction, distance, duration, fingerCount, pinchZoom){ 
     dist = null; 
    }, 
    pinchStatus:function(event, phase, direction, distance, duration, fingerCount, pinchZoom){ 
     if(dist != null){ 
      if(dist > pinchZoom){ 
       pinchIn = true; 
      } 
      else{ 
       pinchIn = false; 
      } 
      dist = pinchZoom; 
      if(pinchIn === true){ 
       console.log("pinching in"); 
      } 
      else{ 
       console.log("pinching out"); 
      } 
     } 
     else{ 
      dist = pinchZoom; 
     } 
    }, 
    fingers:2, 
    pinchThreshold:0 
}); 

這是我做的第一個嘗試。我得到了它的工作,但是當我將它與我的網站結合起來時,它突然不起作用。

我第一次嘗試這樣做時,我使用了jQuery版本的hammer.js(http://eightmedia.github.io/hammer.js/) - 這是一個有點着名的傾聽多點觸控手勢的庫。除了我需要它工作的網站之外,我成功地完成了它。在這裏,它正在研究類.polaroid(圖像),試着捏住它們,然後縮小它們,捏住它們,發出警報:http://goo.gl/oOQDH0。但是,當我在網站上應用相同的js時,我需要它工作的網站突然不起作用。所有的依賴都在那裏。沒有錯誤。由於某種原因,滾動也受到某種程度的抑制(在觸摸設備上很難做到)。它是適用於.dataCard類(標題下的白色矩形)完全相同的代碼,但沒有工作:http://goo.gl/dagKxT

我會非常,非常感激任何和所有幫助,在得到這種互動開發工作。 在此先感謝!

+0

請使用jsfiddle進行演示,如果沒有「提醒」... –

+0

@eicto更新的問題。重寫並且這次添加了JS小提琴。 – gomangomango

+0

http://jsfiddle.net/Nnr3Y/3/只是一個嘗試,不知道它是否符合您的需求 – Gotschi

回答

2

不是爲了解僱或阻止你這樣做,但是你有什麼特別的原因讓你自己寫這些嗎?

在任何情況下看看hammer.js https://github.com/EightMedia/hammer.js

支持/模擬了很多常見的觸摸手勢在那裏。包括捏縮放。它的存在,他們的例子網頁:

https://github.com/EightMedia/hammer.js/blob/master/examples/pinchzoom.html

你可能做你的研究,並看到許多這樣的,但是Hammer的代碼庫是很好的佈局,容易弄清楚庫。

如果你打算從頭開始,可能會在開始時檢測到一個手勢,並用一個通用標誌鎖定它(所以其他手勢不會踢入),然後重新設置標誌位手勢完成。