2015-07-10 2 views
4

Используя этот код в JS панель образца CodePen:Hammer.js пожаров постороннего pinchin/выклинивание события

var myElement = document.getElementById('myElement'); 
var mc = new Hammer.Manager(myElement); 

var pinch = new Hammer.Pinch({threshold: 0}); 
mc.add([pinch]) 
mc.on("pinch pinchin pinchout pinchstart pinchend", function(ev) { 
    myElement.textContent += ev.type +" "; 
}); 

и тестирование на событие пинча на Chrome на ПК с сенсорным экраном, вы заметите, что pinchend всегда сопровождается дополнительным событием «pinchin». То же самое происходит при сжатии.

Последовательность будет идти:

pinchstart pinch pinchin pinch pinchin... ...pinch pinchin pinch pinchend pinchin 

Является ли это ошибка или это дизайн? Связано ли это с «призрачным щелчком»?

+0

В качестве обходного пути я добавил код в пинч слушателя, который отслеживает последнее событие пинч. Если предыдущее событие Pinch было «pinchend», я игнорирую текущий pinchin или pinchout. – Fabrice

ответ

0

Вы должны использовать событие «пинч» в одиночку или другие события (pinchin, pinchout и т. Д.), А не одновременно.

Просто удалите «щепотку»:

mc.on("pinchin pinchout pinchstart pinchend", function(ev) { 
    myElement.textContent += ev.type +" "; 
});