Một thay đổi đã xảy ra trong quá trình triển khai TouchEvents của Chrome kể từ M37 (ổn định vào tháng 8/2014), làm thay đổi toạ độ được báo cáo thành số thực có độ chính xác đơn thay vì số nguyên.
Trước | Sau |
---|---|
clientX: 167 clientY: 196 pageX: 167 pageY: 196 bán kínhX: 26 bán kính Y: 26 màn hìnhX: 167 màn hìnhY: 277 |
clientX: 167.33299255371094 clientY: 195.66700744628906 pageX: 167.33299255371094 pageY: 195.66700744628903 |
Kết quả của thay đổi này có nghĩa là bạn phản hồi mượt mà hơn với các cử chỉ của người dùng vì vị trí của ngón tay sẽ chính xác hơn.
Sử dụng bản minh hoạ của Rick Byers, bạn có thể thấy điều này có thể tạo ra khác biệt lớn như thế nào khi từ từ vẽ một vòng xoáy.

Thao tác này sẽ chỉ ảnh hưởng đến các màn hình có mật độ pixel lớn hơn 1. Để hiểu lý do, hãy xem qua 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ác cử chỉ của người dùng từ trên cùng bên trái xuống dưới cùng bên phải.

Ban đầu, chúng tôi làm tròn vị trí chạm đến pixel CSS gần nhất, có 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ỡ 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 độ chính xác đơn, cử chỉ của chúng ta có thể có dạng như sau.

Trong hầu hết các trường hợp, việc này sẽ không yêu cầu bất kỳ thay đổi nào trong mã của bạn, nhưng có nghĩa là mọi ảnh động hoặc chuyển động 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 đưa điểm cải tiến này vào Safari trên thiết bị di động: https://bugs.webkit.org/show_bug.cgi?id=133180.