Ab M37 (stabile Version im August 2014) wurde eine Änderung an der Implementierung der TouchEvents in Chrome vorgenommen. Die gemeldeten Koordinaten werden jetzt als Gleitkommazahlen statt als Ganzzahlen zurückgegeben.
Vorher | Nachher |
---|---|
clientX: 167 clientY: 196 pageX: 167 pageY: 196 radiusX: 26 radiusY: 26 screenX: 167 screenY: 277 |
clientX: 167.33299255371094 clientY: 195.66700744628906 pageX: 167.33299255371094 pageY: 195.66700744628906 radiusX: 25.843116760253906 radiusY: 25.843116760253906 screenX: 167.33334350585938 screenY: 276.66668701171875 |
Durch diese Änderung können Sie die Touch-Gesten der Nutzer noch besser erkennen, da die Fingerposition genauer bestimmt wird.
In der Demo von Rick Byers sehen Sie, was für einen großen Unterschied das beim langsamen Zeichnen eines Wirbels machen kann.

Das wirkt sich nur auf Bildschirme mit einer Pixeldichte von über 1 aus. Sehen wir uns ein Beispiel an, um das zu verdeutlichen.
Angenommen, Sie haben ein 3 × 3-Raster mit CSS-Pixeln und die Bildschirmdichte beträgt 3. Das bedeutet, dass wir ein Raster mit 9 × 9 physischen Pixeln haben und der Nutzer von links oben nach rechts unten wischt.

Ursprünglich wurde die Position der Berührungen auf das nächste CSS-Pixel gerundet. Bei dieser Geste würden Sie also die folgenden Schritte ausführen.

Wir können keine Zwischenschritte zeichnen, die die physischen Pixel anzeigen könnten, während der Nutzer seinen Finger bewegt.
Nachdem wir zu schwimmenden Elementen gewechselt sind, kann unsere Geste so aussehen.

In den meisten Fällen sind keine Änderungen am Code erforderlich. Animationen oder Bewegungen, die auf Touch-Ereignisse zurückzuführen sind, werden jedoch flüssiger, insbesondere bei langsamen Touch-Gesten.
Diese Verbesserung soll auch für Safari auf Mobilgeräten eingeführt werden: https://bugs.webkit.org/show_bug.cgi?id=133180.