2015-02-18 12 views
5

Ich habe Schwierigkeiten beim Implementieren von Multi-Touch-Schwenken mit hammer.js. Panning-Ereignisse werden nur mit einzelnen Zeigern ausgelöst. Wenn ich versuche, mit zwei Fingern zu ziehen, feuert es nicht, bis ich mindestens einen Finger loslasse. Muss ich etwas Besonderes zur Hammerkonfiguration machen?Multi-Touch-Schwenken mit Hammer.js

EDIT: Ich habe bereits festgestellt, dass ich 2 Zeiger für das Pan-Ereignis konfigurieren kann, aber jetzt sehe ich, dass Chrome eine Funktion zum Öffnen eines Kontextmenüs bei Zwei-Finger-Tippen hat, was die meiste Zeit verhindert Schwenken von erkannt werden. Wenn ich einfach das "contextmenu" -Ereignis abfangen und preventDefault() aufrufen, wird es (offensichtlich) den Pan-Recognizer vollständig deaktivieren. Irgendein anderer Weg?

BR, Daniel

+0

Sprechen Sie über Chrome Desktop, Chrome für Android/iOS? Multitouch-Panning in hammer.js 2.0.4 funktioniert für mich mehr oder weniger in allen Chrome-Versionen (Desktop, Android). Hammer.js 2.0.4 hat einige Probleme beim Springen von 'ev.deltaXY' (Multitouch-Panning) -Werten und ein Problem mit 'Panstart', obwohl (wenn Sie darüber reden), aber es gibt Workarounds für beide, bis diese sind Fest. – Daniel

+1

Wie haben Sie es geschafft, 2 Zeiger für das Pan-Ereignis zu konfigurieren? Ich habe alles versucht, aber ohne Erfolg. Könnten Sie mir bitte hier helfen? – myTerminal

Antwort

1

Sie sollten 'Prise' Ereignis verwenden. Zum Schwenken und Zoomen mit zwei Fingern. PINCH-Ereignis hat Eigenschaft: "Zeiger", mit Fingerereignissen;

var previous_pinch_delta = { 
     x: 0, 
     y: 0 
    }; 
    hammered.on('pinch', function(e){ 
     camera.pan(e.deltaX-previous_pinch_delta.x, e.deltaY-previous_pinch_delta.y); 
     previous_pinch_delta = { 
      x: e.deltaX, 
      y: e.deltaY 
     }; 
     }); 
+0

Danke dafür! Ich habe 'e.scale' verwendet, um zu unterscheiden zwischen zwei Fingern schwenken und skalieren. Es ist nicht perfekt (Sie erhalten ein wenig Panning, bis Sie die Skalierungsschwelle erreicht haben), aber immer noch großartig. –

+0

Ich verstehe diese Antwort nicht. Können Sie erklären, wie Sie zwischen Panning und Zoom unterscheiden? In Ihrem Pinchback-Callback scheint es, dass Sie nur schwenken, nicht zoomen. – Michael

+0

Hallo, Mike. Leider habe ich nicht genug Zeit zu erklären, aber ich kann eine vollständige Quelle meines Berührungssensors kopieren, hoffe, es wird Ihnen helfen: https://pastebin.com/Xk4AmcdC – saike