2015-04-23 52 views
3

我試圖在桌面上使用Hammer.js和Chrome中的觸摸模擬器來檢測捏事件。可以檢測平底鍋並點按沒有問題,但掐不似乎是響應。修改了codepen上的示例代碼: http://codepen.io/anon/pen/NqWymK與Hammer.js和觸摸模擬器捏事件

如果您不熟悉觸摸模擬器,應通過按住shift鍵並單擊並拖動鼠標來模擬捏合事件。

(HTML)

<script src="http://cdn.rawgit.com/hammerjs/touchemulator/master/touch-emulator.js"></script> 
<script> 
    TouchEmulator(); 
</script> 
<script src="https://hammerjs.github.io/dist/hammer.js"></script> 

<div id="myElement"></div> 

(CSS)

#myElement { 
    background: silver; 
    height: 300px; 
    text-align: center; 
    font: 30px/300px Helvetica, Arial, sans-serif; 
} 

(JS)

var myElement = document.getElementById('myElement'); 

// create a simple instance 
// by default, it only adds horizontal recognizers 
var mc = new Hammer(myElement); 

// listen to events... 
mc.on("pinch pan tap", function(ev) { 
myElement.textContent = ev.type +" gesture detected."; 
}); 

任何想法?

謝謝

回答

5

爲了測試目的,想出了以下內容。在mc.on(etc ....)之前添加了以下內容:

mc.add(new Hammer.Pinch({ threshold: 0, pointers: 0 })); 

這消除了觸發多點觸控的多個觸摸點的需要。

據我所知,觸摸模擬器應該模擬多個觸摸點,但似乎沒有工作。如果有人能說出原因,那將不勝感激。

0

您需要啓用捏合 - 默認情況下禁用。

var hammertime = new Hammer($('#touchDiv')[0], {}); 

hammertime.get('pinch').set({ enable: true }); 
hammertime.on('pinch', function(ev) { 
    console.log('zoom ' + ev.scale); 
});