¿Cuál es la diferencia entre screenX
/ Y
, clientX
/ Y
y pageX
/ Y
?
También para iPad Safari, ¿los cálculos son similares a los del escritorio? ¿O hay alguna diferencia debido a la ventana gráfica?
Sería genial si pudieras señalarme un ejemplo.
javascript
ipad
safari
mouse-position
hmthr
fuente
fuente
Respuestas:
En JavaScript:
pageX
,pageY
,screenX
,screenY
,clientX
, YclientY
devuelve un número que indica el número de “píxeles CSS” físicas un punto es desde el punto de referencia. El punto de evento es donde el usuario hizo clic, el punto de referencia es un punto en la esquina superior izquierda. Estas propiedades devuelven la distancia horizontal y vertical desde ese punto de referencia.pageX
ypageY
: enrelación con la parte superior izquierda del área de contenido totalmente representada en el navegador. Este punto de referencia está debajo de la barra de URL y el botón Atrás en la esquina superior izquierda. Este punto podría estar en cualquier lugar de la ventana del navegador y puede cambiar de ubicación si hay páginas desplazables incrustadas dentro de las páginas y el usuario mueve una barra de desplazamiento.
screenX
yscreenY
: enrelación con la parte superior izquierda de la pantalla / monitor físico, este punto de referencia solo se mueve si aumenta o disminuye el número de monitores o la resolución del monitor.
clientX
yclientY
:Relativo al borde superior izquierdo del área de contenido ( la ventana gráfica ) de la ventana del navegador. Este punto no se mueve incluso si el usuario mueve una barra de desplazamiento desde el navegador.
Para una visualización en qué navegadores admiten qué propiedades:
http://www.quirksmode.org/dom/w3c_cssom.html#t03
w3schools tiene un intérprete y editor de Javascript en línea para que pueda ver lo que cada uno hace
http://www.w3schools.com/jsref/tryit.asp?filename=try_dom_event_clientxy
fuente
Aquí hay una imagen que explica la diferencia entre
pageY
yclientY
.Lo mismo para
pageX
yclientX
, respectivamente.pageX/Y
las coordenadas son relativas a la esquina superior izquierda de toda la página renderizada (incluidas las partes ocultas por desplazamiento),mientras que las
clientX/Y
coordenadas son relativas a la esquina superior izquierda de la parte visible de la página, "vistas" a través de la ventana del navegador.Ver demo
Probablemente nunca necesites
screenX/Y
fuente
screenX/Y
es?pageX/pageY
debería usarse en lugar declientX/clientY
?<html>
elemento en píxeles CSS.viewport
píxeles en CSS.screen
píxeles en el dispositivo.Con respecto a su última pregunta, si los cálculos son similares en los navegadores de escritorio y móviles ... Para una mejor comprensión, en los navegadores móviles, necesitamos diferenciar dos nuevos conceptos: la ventana gráfica de diseño y la ventana visual . La vista visual es la parte de la página que se muestra actualmente en pantalla. La ventana gráfica de diseño es sinónimo de una página completa representada en un navegador de escritorio (con todos los elementos que no son visibles en la ventana gráfica actual).
En los navegadores móviles,
pageX
ypageY
todavía son relativos a la página en píxeles CSS para que pueda obtener las coordenadas del mouse relativas a la página del documento. Por otro lado,clientX
yclientY
definir las coordenadas del mouse en relación con la ventana visual .Hay otro hilo de stackoverflow aquí con respecto a las diferencias entre la vista visual y la vista de diseño: ¿ Diferencia entre la vista visual y la vista de diseño?
Otro buen recurso: http://www.quirksmode.org/mobile/viewports2.html
fuente
¡Lo que me ayudó fue agregar un evento directamente a esta página y hacer clic por mí mismo! Abra su consola en herramientas de desarrollador / Firebug, etc. y pegue esto:
Con este fragmento, puede rastrear su posición de clic a medida que se desplaza, mueve la ventana del navegador, etc.
¡Tenga en cuenta que pageX / Y y clientX / Y son iguales cuando se desplaza hasta la parte superior!
fuente
La diferencia entre ellos dependerá en gran medida del navegador al que se refiera actualmente. Cada uno implementa estas propiedades de manera diferente, o nada en absoluto. Quirksmode tiene una excelente documentación sobre las diferencias del navegador con respecto a los estándares W3C, como los eventos DOM y JavaScript.
fuente