Uma mudança foi lançada na implementação dos TouchEvents do Chrome a partir do M37 (estável em 08/2014), que altera as coordenadas informadas para flutuações em vez de números inteiros.
Antes | Depois |
---|---|
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 |
O resultado dessa mudança é uma resposta mais suave aos gestos dos usuários, já que ela oferece maior precisão da posição dos dedos.
Usando a demonstração de Rick Byers, você pode ver a grande diferença que isso pode fazer ao desenhar lentamente um redemoinho.

Isso só afetará telas com densidade de pixels maior que 1. Para entender o motivo, vamos analisar um exemplo.
Imagine que você tem uma grade 3x3 de pixels CSS e a densidade da tela é 3, ou seja, temos uma grade de 9x9 pixels físicos e os gestos do usuário da parte de cima à esquerda para a parte de baixo à direita.

Originalmente, estávamos arredondando a posição dos toques para o pixel CSS mais próximo, o que significa que, nesse gesto, você teria as etapas a seguir.

Não mostramos nenhuma das etapas intermediárias que os pixels físicos podem mostrar quando o usuário move o dedo.
Agora que mudamos para flutuações, nosso gesto pode ficar assim.

Na maioria dos casos, isso não exige mudanças no código, mas significa que qualquer animação ou movimento que você fizer como resultado de TouchEvents será mais suave, especialmente para gestos lentos.
Também planejamos trazer essa melhoria para o Safari para dispositivos móveis: https://bugs.webkit.org/show_bug.cgi?id=133180.