בוצע שינוי בהטמעה של TouchEvents ב-Chrome החל מגרסה M37 (גרסה יציבה משנת 2014), שמשנה את הקואורדינטות שמדווחות ל-float במקום למספרים שלמים.
לפני | אחרי |
---|---|
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 |
בעקבות השינוי הזה, תהיה לכם תגובה חלקה יותר לתנועות של המשתמשים, כי תהיה לכם דיוק גבוה יותר של מיקום האצבעות.
בהדגמה של Rick Byers תוכלו לראות את ההבדל העצום שאפשר לראות כשמציירים ספירלה לאט.

השינוי הזה ישפיע רק על מסכים עם צפיפות פיקסלים גבוהה מ-1. כדי להבין למה, נבחן דוגמה.
נניח שיש לכם רשת 3x3 של פיקסלים ב-CSS וצפיפות המסך היא 3, כלומר יש רשת של 9x9 פיקסלים פיזיים והמשתמש מבצע תנועות מימין למעלה אל שמאל למטה.

במקור, עיגול המיקום של הנגיעות לפי הפיקסל הקרוב ביותר ב-CSS, משמעותו שבתנועה הזו היו מסתיימים בשלבים הבאים.

אנחנו לא מצליחים לצייר את השלבים הביניים שהפיקסלים הפיזיים יכולים להציג כשהמשתמש מזיז את האצבע.
עכשיו, אחרי שעברנו ל-floats, התנועה יכולה להיראות כך.

ברוב המקרים, לא תצטרכו לבצע שינויים בקוד, אבל המשמעות היא שכל האנימציות או התנועות שתבצעו כתוצאה מאירועי Touch יהיו חלקות יותר, במיוחד בתנועות איטיות.
אנחנו גם מתכננים להוסיף את השיפור הזה ל-Safari לנייד: https://bugs.webkit.org/show_bug.cgi?id=133180.