Cảm ứng chính xác cho các cử chỉ chính xác

Thay đổi đã được triển khai trong quá trình triển khai TouchEvents của Chrome kể từ phiên bản M37 (phiên bản ổn định vào tháng 8 năm 2014). Thay đổi này sẽ thay đổi toạ độ được báo cáo thành số thực thay vì số nguyên.

Trước Sau
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

Kết quả của thay đổi này là bạn có thể phản hồi các cử chỉ của người dùng một cách mượt mà hơn vì nó giúp bạn xác định chính xác hơn vị trí của các ngón tay.

Khi sử dụng bản minh hoạ của Rick Byers, bạn có thể thấy sự khác biệt lớn khi vẽ một vòng xoáy một cách chậm rãi.

Sự khác biệt trong Sự kiện chạm.

Điều này sẽ chỉ ảnh hưởng đến những màn hình có mật độ điểm ảnh lớn hơn 1. Để hiểu lý do, hãy cùng xem một ví dụ.

Hãy tưởng tượng bạn có một lưới 3x3 gồm pixel CSS và mật độ màn hình là 3, nghĩa là chúng ta có một lưới gồm 9x9 pixel thực và cử chỉ của người dùng từ góc trên bên trái đến góc dưới bên phải.

Pixel CSS và lưới pixel màn hình.

Ban đầu, chúng ta làm tròn vị trí chạm đến pixel CSS gần nhất, nghĩa là trong cử chỉ này, bạn sẽ thực hiện các bước sau.

Độ chính xác của pixel CSS trong cử chỉ.

Chúng ta bỏ lỡ việc vẽ bất kỳ bước trung gian nào mà các pixel thực tế có thể hiển thị khi người dùng di chuyển ngón tay.

Bây giờ, chúng ta đã chuyển sang float, cử chỉ của chúng ta có thể trông như sau.

Độ chính xác của dấu phẩy động trong cử chỉ.

Trong hầu hết các trường hợp, bạn không cần thay đổi mã, nhưng điều này có nghĩa là mọi ảnh động hoặc chuyển động mà bạn thực hiện do TouchEvents sẽ mượt mà hơn, đặc biệt là đối với các cử chỉ chậm.

Chúng tôi cũng có kế hoạch cải thiện Safari dành cho thiết bị di động: https://bugs.webkit.org/show_bug.cgi?id=133180.