Precisieaanraking voor nauwkeurige gebaren

Er is een verandering doorgevoerd in de implementatie van Chrome's TouchEvents vanaf M37 (stabiel in 08/2014), waardoor de gerapporteerde coördinaten worden gewijzigd in floats in plaats van gehele getallen.

Voor Na
klantX: 167
klantJ: 196
paginaX: 167
paginaY: 196
straalX: 26
straalY: 26
schermX: 167
schermY: 277
klantX: 167.33299255371094
klant: 195.66700744628906
paginaX: 167.33299255371094
paginaY: 195.66700744628906
straalX: 25,843116760253906
straalY: 25,843116760253906
schermX: 167.33334350585938
schermY: 276.66668701171875

Het resultaat van deze verandering betekent dat u soepeler reageert op de gebaren van de gebruiker, omdat de vingerpositie hierdoor nauwkeuriger wordt weergegeven.

Met behulp van de demo van Rick Byers kun je zien wat een enorm verschil dit kan maken als je langzaam een ​​werveling tekent.

Verschillen in aanraakgebeurtenissen.

Dit heeft alleen effect op schermen met een pixeldichtheid groter dan 1. Laten we een voorbeeld doornemen om te begrijpen waarom.

Stel je voor dat je een raster van 3x3 CSS-pixels hebt en de schermdichtheid 3 is, wat betekent dat we een raster van 9x9 fysieke pixels hebben en de gebruikersgebaren van linksboven naar rechtsonder.

CSS-pixel en schermpixelraster.

Oorspronkelijk waren we de aanraakpositie aan het afronden naar de dichtstbijzijnde CSS-pixel, wat betekende dat je bij dit gebaar de volgende stappen zou krijgen.

CSS-pixelprecisie tijdens gebaren.

We missen het tekenen van de tussenstappen die de fysieke pixels zouden kunnen laten zien als de gebruiker zijn vinger beweegt.

Nu we zijn overgestapt op praalwagens, kan ons gebaar er zo uitzien.

Zweefprecisie tijdens gebaar.

In de meeste gevallen vereist dit geen wijzigingen in uw code, maar het betekent wel dat alle animaties of bewegingen die u uitvoert als gevolg van TouchEvents vloeiender zullen zijn, vooral bij langzame gebaren.

Er is ook een plan om deze verbetering ook naar mobiele Safari te brengen: https://bugs.webkit.org/show_bug.cgi?id=133180 .