如何保持浏览器的双指缩放并使用hammer.js的双指缩放事件?

4

这是我的代码...只是一个简单的测试,因为我以前从未使用过hammer.js:

var hammerTime = new Hammer($('#hammerTarget').get(0));

hammerTime.add(new Hammer.Pinch({event: 'pinch'})); // Add pinch gesture events.

hammerTime.on('pinchin', function(event) {
    console.log('hammer pinchin');

}).on('pinchout', function(event) {
    console.log('hammer pinchout');

}).on('pinchend', function(event) {
    console.log('hammer pinchend');
});

这个代码段可以正常工作,我可以检测到收缩手势,但是现在我的收缩目标无法再缩放浏览器了?如何使用收缩事件并允许默认的浏览器收缩缩放?我需要在收缩时做一些事情,但我仍然希望人们能够进行缩放。
如果有影响的话,我正在使用hammer.js 2.0.4。
1个回答

6

我也曾遇到类似的问题,直到我发现了touch-action属性。将其设置为auto,Hammer就会停止阻止事件,并允许浏览器进行自己的缩放。

var hammerTime = new Hammer($('#hammerTarget').get(0), {touchAction : 'auto'});

hammerTime.add(new Hammer.Pinch({event: 'pinch'})); // Add pinch gesture events.

hammerTime.on('pinchin', function(event) {
    console.log('hammer pinchin');

}).on('pinchout', function(event) {
    console.log('hammer pinchout');

}).on('pinchend', function(event) {
    console.log('hammer pinchend');
});

请查看文档:http://hammerjs.github.io/touch-action/


2
链接页面上的文档说:“Hammer可能会中断。您必须手动调用preventDefault来修复此问题。只有在您知道自己在做什么时才应使用此选项。” 当然,我不知道自己在做什么,因为我找不到任何一篇连贯准确地描述我何时何地需要调用preventDefault的文章! - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接