Sentuhan presisi untuk gestur yang akurat

Perubahan telah diterapkan dalam implementasi TouchEvents Chrome mulai M37 (stabil pada 08/2014), yang mengubah koordinat yang dilaporkan menjadi float, bukan bilangan bulat.

Sebelum Setelah
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

Hasil dari perubahan ini berarti Anda memiliki respons yang lebih lancar terhadap gestur pengguna karena memberikan akurasi posisi jari yang lebih tinggi.

Dengan menggunakan demo Rick Byers, Anda dapat melihat perbedaan besar yang dapat dihasilkan saat menggambar pusaran secara perlahan.

Perbedaan Peristiwa Sentuh.

Hal ini hanya akan memengaruhi layar yang memiliki kepadatan piksel lebih besar dari 1. Untuk memahami alasannya, mari kita pelajari contohnya.

Bayangkan Anda memiliki petak 3x3 piksel CSS dan kepadatan layarnya adalah 3, yang berarti kita memiliki petak 9x9 piksel fisik dan gestur pengguna dari kiri atas ke kanan bawah.

Piksel CSS dan petak piksel layar.

Awalnya, kita membulatkan posisi sentuhan ke piksel CSS terdekat, yang berarti dalam gestur ini, Anda akan berakhir dengan langkah-langkah berikut.

Presisi piksel CSS selama gestur.

Kita melewatkan langkah-langkah perantara yang dapat ditampilkan oleh piksel fisik saat pengguna menggerakkan jarinya.

Setelah beralih ke float, gestur kita dapat terlihat seperti ini.

Presisi float selama gestur.

Pada umumnya, hal ini tidak akan memerlukan perubahan apa pun dalam kode Anda, tetapi berarti animasi atau gerakan apa pun yang Anda lakukan sebagai hasil dari TouchEvents, akan lebih lancar, terutama untuk gestur lambat.

Ada juga rencana untuk menghadirkan peningkatan ini ke Safari seluler: https://bugs.webkit.org/show_bug.cgi?id=133180.