Hammer.js 和触摸模拟器的捏合事件
Pinch event with Hammer.js and touch-emulator
我正在尝试使用 Hammer.js 和桌面 Chrome 中的触摸模拟器检测捏合事件。可以检测到平移和敲击没有问题,但捏合似乎没有反应。在此处修改了codepen上的示例代码:
http://codepen.io/anon/pen/NqWymK
如果您不熟悉触摸模拟器,应该通过按住 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.";
});
有什么想法吗?
谢谢
出于测试目的提出了以下内容。在mc.on(等....)之前添加了以下内容:
mc.add(new Hammer.Pinch({ threshold: 0, pointers: 0 }));
这样就不再需要多个触摸点来触发多点触控。
据我了解,触摸模拟器应该模拟多个触摸点,但似乎无法正常工作。如果有人能告诉为什么,那将不胜感激。
您需要启用捏合 - 默认情况下它是禁用的。
var hammertime = new Hammer($('#touchDiv')[0], {});
hammertime.get('pinch').set({ enable: true });
hammertime.on('pinch', function(ev) {
console.log('zoom ' + ev.scale);
});
我正在尝试使用 Hammer.js 和桌面 Chrome 中的触摸模拟器检测捏合事件。可以检测到平移和敲击没有问题,但捏合似乎没有反应。在此处修改了codepen上的示例代码: http://codepen.io/anon/pen/NqWymK
如果您不熟悉触摸模拟器,应该通过按住 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.";
});
有什么想法吗?
谢谢
出于测试目的提出了以下内容。在mc.on(等....)之前添加了以下内容:
mc.add(new Hammer.Pinch({ threshold: 0, pointers: 0 }));
这样就不再需要多个触摸点来触发多点触控。
据我了解,触摸模拟器应该模拟多个触摸点,但似乎无法正常工作。如果有人能告诉为什么,那将不胜感激。
您需要启用捏合 - 默认情况下它是禁用的。
var hammertime = new Hammer($('#touchDiv')[0], {});
hammertime.get('pinch').set({ enable: true });
hammertime.on('pinch', function(ev) {
console.log('zoom ' + ev.scale);
});