Javascript 挤压事件触发Hammer.js中的pan事件

Javascript 挤压事件触发Hammer.js中的pan事件,javascript,events,hammer.js,pan,pinch,Javascript,Events,Hammer.js,Pan,Pinch,我正在使用Hammer.js库编写一个小型移动手势rocognizer。 不幸的是,当用户插入或取出时,Hammer、js也会触发一些pan事件 我认为这是因为,在捏手势过程中,用户的手指会做一些平移运动 有一种方法可以让Hammer.js在挤压过程中忽略小的平移运动吗 老实说,Hammer.js文档对此并不清楚 这是我的密码: hammer = new Hammer.Manager(myelement); var sing

我正在使用Hammer.js库编写一个小型移动手势rocognizer。 不幸的是,当用户插入或取出时,Hammer、js也会触发一些pan事件

我认为这是因为,在捏手势过程中,用户的手指会做一些平移运动

有一种方法可以让Hammer.js在挤压过程中忽略小的平移运动吗

老实说,Hammer.js文档对此并不清楚

这是我的密码:

                    hammer = new Hammer.Manager(myelement);
                var singleTap = new Hammer.Tap({
                    event: 'tap',
                });

                var doubleTap = new Hammer.Tap({
                    event: 'doubletap',
                    taps: 2
                });

                // SWIPE RECOGNIZERS

                var swipeLeft = new Hammer.Swipe({
                    event: 'swipeleft',
                    direction: 2
                });

                var swipeRight = new Hammer.Swipe({
                    event: 'swiperight',
                    direction: 4
                });

                var swipeUp = new Hammer.Swipe({
                    event: 'swipeup',
                    direction: 8
                });

                var swipeDown = new Hammer.Swipe({
                    event: 'swipedown',
                    direction: 16
                });


                // PINCH RECOGNIZERS
                var pinch = new Hammer.Pinch({
                    event: 'pinch',
                    pointers: 2
                });

                var pinchIn = new Hammer.Pinch({
                    event: 'pinchin',
                    pointers: 2,
                });

                var pinchOut = new Hammer.Pinch({
                    event: 'pinchout',
                    pointers: 2,
                });

                // PRESS RECOGNIZER
                var press = new Hammer.Press({
                    event: 'press',
                    pointers: 1,
                    threshold: 5,
                    time: 500
                });

                // PAN RECOGNIZER
                var pan = new Hammer.Pan({
                    event: 'pan',
                    pointers: 0
                });

                // ROTATE EVENTS RECOGNIZERS

                var rotateStart = new Hammer.Rotate({
                    event: 'rotatestart',
                    pointers: 2,
                    threshold: 0
                });

                var rotateEnd = new Hammer.Rotate({
                    event: 'rotateennd',
                    pointers: 2,
                    threshold: 0
                });

                var rotateCancel = new Hammer.Rotate({
                    event: 'rotatecancel',
                    pointers: 2,
                    threshold: 0
                });

                // ADDING RECOGNIZERS TO HAMMER 
                hammer.add([doubleTap, singleTap]);

                hammer.add([swipeDown, swipeUp, swipeRight, swipeLeft]);

                hammer.add([pan]);

                hammer.add([pinch]);
                hammer.add([press]);

                hammer.add([rotateStart, rotateEnd, rotateCancel]);

                pinchIn.recognizeWith([pan]);
                pinchOut.recognizeWith([pan]);
                pan.requireFailure([pinchIn, pinchOut]);

                // BEHAVIOUR ON TAP
                doubleTap.recognizeWith(singleTap);

                // DOUBLE/TRIPLE TAP RECOGNIZERS EXCLUSION
                singleTap.requireFailure([doubleTap]);

                //Binding Hammer's events with hammerHandler
                hammer.on("tap doubletap press rotatestart rotateend rotatecancel swipeleft swiperight swipeup swipedown pan pinch", function (event) {
                    hammerHandler(event);
                });

我只是在处理同一个问题,结果是默认情况下禁用了pinch。您必须这样启用它:

hammer.get('pinch').set({enable:true});
尝试在第一行之后添加,希望您能看到报告的夹点事件


来源:

我刚才处理的是同一个问题,结果是默认情况下禁用了pinch。您必须这样启用它:

hammer.get('pinch').set({enable:true});
尝试在第一行之后添加,希望您能看到报告的夹点事件


来源:

如果你只使用一个手指,那么检查两个手指

hammertime.on('panend', function(e) {
    if(e.maxPointers > 1) { return; }
})

如果你只使用一个手指,那么检查两个手指

hammertime.on('panend', function(e) {
    if(e.maxPointers > 1) { return; }
})

OP的问题不是关于启用夹点。更确切地说,他是在暗示夹点已经开始工作,并且在夹点和不希望发生的pan事件触发之后。OP的问题不是启用夹点。更确切地说,他是在暗示夹点已经开始工作,并且在夹点和不希望发生的平移事件被触发之后。我也有同样的问题。你找到解决办法了吗?我也有同样的问题。你有没有想出一个解决办法?