Pracuję nad aplikacją HTML5, a teraz napotykam na dość trudny problem z uzyskaniem właściwej lokalnej pozycji dotyku/myszy wewnątrz elementu docelowego w odpowiednim układzie współrzędnych.Lokalna pozycja TouchEvent/MouseEvent wewnątrz div
Istnieje wiele rozwiązań w StackOverflow, ale nie jest to takie proste.
"Klasycznym" rozwiązaniem jest obliczenie przesunięcia celu i odjęcie go od pozycji pageX i pageY. Wiele osób korzysta z funkcji JQuery offset
, ale stwierdziliśmy, że jest ona wadliwa (1.8.3) na iOS w niektórych sytuacjach, gdy strona jest przewijana i zawiera zagnieżdżone powiększone elementy div.
Sytuacja jest bardziej skomplikowana, ponieważ istnieją nie tylko zagnieżdżone powiększone elementy div (CSS zoom
), ale także warstwy z różnymi przekształceniami CSS (tłumaczenia xi y).
W końcu napisaliśmy własną funkcję obliczania lokalnej pozycji myszy/dotyku w docelowym dziale div (przy użyciu WebKitCSSMatrix
, MSCSSMatrix
i innych ...). Działa "prawie" dobrze, ale wciąż nie jest doskonała, to niektóre sytuacje - szczególnie gdy są zagnieżdżone powiększone elementy div.
Moje pytanie brzmi, czy istnieje jakieś ogólne rozwiązanie/biblioteka do obliczenia lokalnej pozycji dotykowej/myszy wewnątrz elementu docelowego, biorąc pod uwagę wyżej opisane wymagania?
Dzięki.
Ładny dzień dla wszystkich ...
Czy jest jakieś szczególne wydarzenie związane z myszką/dotykiem, które Cię interesuje? pageX i pageY są mierzone w pikselach CSS, więc nie powinny mieć na nie wpływu powiększanie, a piksele CSS są stałe na całym powiększeniu, jeśli wszystko działa poprawnie. –