2015-04-01 12 views
8

Ich möchte etwas im Browser schreiben, der Gesten auf dem Trackpad aufzeichnet.HTML5/Javascript - Ist es möglich, die absoluten Koordinaten eines Berührungsereignisses auf einem Macbook Trackpad im Browser abzurufen?

Da ich in der Lage sein wollte, alle Bewegungen zu verfolgen, ohne mich darum sorgen zu müssen, dass der Zeiger das Fenster verlässt, habe ich zuerst dieses Problem untersucht und den MDN Pointer Lock API demo als Ausgangspunkt verwendet.

Aber ich bemerke, wenn ich diese Demo auf einem MacBook benutze, wenn ich meinen Finger anhebe und einen neuen Zug an anderer Stelle auf dem Trackpad starte, ignoriert er die Distanz, die mein Finger in der Luft zurückgelegt hat, zählt nur die Bewegung, die ich gemacht habe berührt das Trackpad. Dies entspricht der Art und Weise, wie das Trackpad verwendet wird, um den Mauszeiger im Betriebssystem im Allgemeinen zu bewegen.

Aber für meine spezielle Anwendung möchte ich die absolute x und y von meinem Finger auf dem Trackpad haben. Wäre es möglich, eine Variante des oben verlinkten Demos zu erstellen, bei der der rote Punkt der absoluten Position Ihres Fingers entspricht? Wenn Sie beispielsweise Ihren Finger heben und dann oben links ablegen, springt der rote Punkt immer zur linken oberen Ecke der Leinwand.

Ich bin mir bewusst, der Javascript Touch Events API, die, wenn sie auf einer Tablette verwendet absoluten Koordinaten gibt, aber die demo nicht registriert jede Eingabe Trackpad, wenn auf dem MacBook unter Firefox (v36) oder Chrom (v41) laufen.

Ich habe auch gelesen, dass es möglich ist, Touch-Emulation in Chrome zu aktivieren, obwohl ich das Kontrollkästchen unter meiner Version nicht finden konnte (vielleicht haben nur spezielle Entwickler-Builds dies) und davon zu lesen scheint es wie es ist mehr von einer Maus-to-Touch-Übersetzung, so dass ich bezweifle, dass diese Emulation spezifische Unterstützung für Trackpads haben würde.

Gibt es eine Möglichkeit, die absoluten XY-Koordinaten eines Touch-Ereignisses auf einem MacBook-Trackpad über HTML/Javascript zu erhalten?

+0

Könnte die Antwort von Hilfe http: //stackoverflow.com/questions/7790725/javascript-track-mouse-position – GibboK

Antwort

0

Ich glaube wirklich nicht, dass Sie das Trackpad so arbeiten können, wie Sie es möchten. Denken Sie daran, das Trackpad soll wie eine Maus funktionieren, es ist wie ein abgeflachter Trackball. Stellen Sie sich das so vor, als ob Ihr Finger den Cursor bei jedem Streichen mit dem Finger um den Finger bewegt und den Cursor unter dem Finger zentriert, wenn Sie auf das Trackpad drücken.

Sofern Sie nicht in der Lage waren, das Trackpad 1: 1 auf dem Bildschirm abzubilden, was etwa mit einem Wacom-Tablett geschieht, hat das Trackpad keine Korrelation mit dem Bildschirm; es weiß nur über die Maus.

In Chrome (Version Version 46.0.2490.71 m), können Sie Touch-Ereignisse simulieren, indem sie im Emulationsmodus ermöglicht:

  1. öffnen Entwicklungstools F12
  2. Klicken Sie entweder auf das Telefonsymbol in der linken oberen oder öffnen Sie die bessere Konsole durch Drücken Esc
  3. Klicken Sie auf die Registerkarte Emulation
  4. zum Sensors Panel
  5. prüfen Emulate touch screen
  6. ?

Enable Emulation in Chrome

+0

Obwohl es für einen Browser wahr sein kann, gibt es Mittel, um Genaue Berührungskoordinaten in der nativen Anwendung. Warum Browser-App sollte anders sein? Ich denke, es ist das nächste, was Browser-Anbieter (zumindest Apple) implementieren sollten. Entweder das oder bestehende Funktionen für native Apps entfernen. – metalim