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.

Đ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.

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ú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.

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.