Jaka jest różnica między screenX
/ Y
, clientX
/ Y
i pageX
/ Y
?
Również w przypadku iPada Safari czy obliczenia są podobne jak w przypadku komputera stacjonarnego - LUB istnieje pewna różnica z powodu widoku?
Byłoby wspaniale, gdybyś mógł wskazać mi przykład.
javascript
ipad
safari
mouse-position
hmthr
źródło
źródło
Odpowiedzi:
W JavaScript:
pageX
,pageY
,screenX
,screenY
,clientX
, IclientY
zwraca liczbę, która określa liczbę pikseli fizycznych „CSS” punkt jest od punktu odniesienia. Punkt zdarzenia to miejsce kliknięcia przez użytkownika, punkt odniesienia to punkt w lewym górnym rogu. Te właściwości zwracają poziomą i pionową odległość od tego punktu odniesienia.pageX
ipageY
: Wstosunku do lewego górnego rogu w pełni renderowanego obszaru treści w przeglądarce. Ten punkt odniesienia znajduje się poniżej paska adresu URL i przycisku Wstecz w lewym górnym rogu. Ten punkt może znajdować się w dowolnym miejscu w oknie przeglądarki i może faktycznie zmienić lokalizację, jeśli na stronach są osadzone przewijalne strony, a użytkownik przesuwa pasek przewijania.
screenX
orazscreenY
: Wstosunku do lewego górnego rogu fizycznego ekranu / monitora, ten punkt odniesienia przesuwa się tylko wtedy, gdy zwiększysz lub zmniejszysz liczbę monitorów lub rozdzielczość monitora.
clientX
iclientY
:Względem górnej lewej krawędzi obszaru zawartości ( rzutni ) okna przeglądarki. Ten punkt się nie porusza, nawet jeśli użytkownik przesuwa pasek przewijania z poziomu przeglądarki.
Aby zobaczyć, w których przeglądarkach obsługiwane są właściwości:
http://www.quirksmode.org/dom/w3c_cssom.html#t03
w3schools ma internetowy interpreter i edytor Javascript, dzięki czemu możesz zobaczyć, co robi każdy
http://www.w3schools.com/jsref/tryit.asp?filename=try_dom_event_clientxy
źródło
Oto zdjęcie wyjaśniające różnicę między
pageY
iclientY
.To samo odpowiednio dla
pageX
iclientX
.pageX/Y
współrzędne odnoszą się do lewego górnego rogu całej renderowanej strony (w tym części ukrytych przez przewijanie),podczas
clientX/Y
współrzędne odnoszą się do lewego górnego rogu widocznej części strony, „widziane” przez okno przeglądarki.Zobacz demo
Prawdopodobnie nigdy nie będziesz potrzebować
screenX/Y
źródło
screenX/Y
to jest?pageX/pageY
należy go użyć zamiastclientX/clientY
?<html>
elementu w pikselach CSS.viewport
pikseli CSS.screen
pikseli urządzenia.Jeśli chodzi o twoje ostatnie pytanie, czy obliczenia są podobne w przeglądarkach komputerowych i mobilnych ... Aby lepiej zrozumieć - w przeglądarkach mobilnych - musimy wyróżnić dwie nowe koncepcje: rzutnię układu i rzutnię wizualną . Wizualna rzutnia to część strony, która jest obecnie wyświetlana na ekranie. Rzutnia układu jest synonimem pełnej strony renderowanej w przeglądarce na pulpicie (ze wszystkimi elementami, które nie są widoczne w bieżącej rzutni).
W przeglądarkach mobilnych
pageX
ipageY
nadal są względem strony w pikselach CSS, dzięki czemu można uzyskać współrzędne myszy względem strony dokumentu. Z drugiej stronyclientX
iclientY
zdefiniuj współrzędne myszy w stosunku do rzutni .Istnieje inny wątek przepełnienia stosu dotyczący różnic między rzutnią wizualną a rzutnią układu: Różnica między rzutnią wizualną a rzutnią układu?
Kolejny dobry zasób: http://www.quirksmode.org/mobile/viewports2.html
źródło
Pomogło mi dodanie wydarzenia bezpośrednio do tej strony i samodzielne kliknięcie! Otwórz konsolę w narzędziach dla programistów / Firebug itp. I wklej to:
Za pomocą tego fragmentu możesz śledzić pozycję kliknięcia podczas przewijania, przesuwania okna przeglądarki itp.
Zwróć uwagę, że pageX / Y i clientX / Y są takie same, gdy przewijasz do samego końca!
źródło
Różnica między nimi będzie zależeć w dużej mierze od przeglądarki, do której się obecnie odwołujesz. Każdy z nich implementuje te właściwości inaczej lub wcale. Quirksmode ma świetną dokumentację dotyczącą różnic przeglądarki w odniesieniu do standardów W3C, takich jak zdarzenia DOM i JavaScript.
źródło