¿Cuál es la diferencia entre screenX/Y, clientX/Y y pageX/Y?

La diferencia entre las propiedades screenX/Y, clientX/Y y pageX/Y de JavaScript suele confundirse. Cada una de las propiedades devuelve un valor que indica el número de píxeles físicos de diferentes puntos de referencia. Las diferencias y el caso de uso de estas propiedades se describen a continuación:

1. La propiedad screenX y screenY: screenX y screenY son propiedades de solo lectura que proporcionan coordenadas horizontales y verticales respectivamente en relación con las coordenadas globales o de pantalla. Devuelve un valor de coma flotante doble que denota la coordenada.

Ejemplo:

HTML

<!DOCTYPE html>
<html>
  
<body>
    <h1 style="color: green;">
        GeeksforGeeks
    </h1>
  
    <h3>The screenX and screenY property</h3>
  
    <p>
        Click on the button to open a new
        window with the given parameters
        and check the screenX and screenY
        property.
    </p>
  
    <button onclick="getScreenXY()">
        Open Window
    </button>
  
    <script>
        function getScreenXY() {
  
            // Open a new window with the
            // left at 400 and the top at 200
            var newWindow = window.open("", "newWindow",
                "left=400, top=200, width=450, height=300");
  
            newWindow.document.write(
                "<p> This is the example window to" +
                " show the usage of screenX/Y");
  
            // Show the screenX and screenY property
            newWindow.document.write(
                "<br>screenX: " + newWindow.screenX
            );
            newWindow.document.write(
                "<br>screenY: " + newWindow.screenY + "</p>"
            );
        }
    </script>
</body>
  
</html>

Producción:

2. La propiedad clientX y clientY: clientX y clientY son propiedades de solo lectura que proporcionan la coordenada horizontal y vertical respectivamente dentro del área de contenido, o la ventana gráfica de la ventana del navegador.

Por ejemplo, si el usuario se desplaza verticalmente hacia abajo en la página web y hace clic en el inicio de la ventana gráfica, clientY siempre devolverá 0. Devuelve un valor de coma flotante doble que indica la coordenada.

Ejemplo:

HTML

<!DOCTYPE html>
<html>
  
<head>
    <style>
        div {
            width: 300px;
            height: 200px;
            border: 1px solid black;
        }
    </style>
</head>
  
<body>
    <h1 style="color: green;">
        GeeksforGeeks
    </h1>
  
    <h3>The clientX and clientY property</h3>
  
    <p>
        Click anywhere in this rectangle to
        see the usage of the clientX and
        clientY properties
    </p>
  
  
    <div onclick="showCoordinates(event)"></div>
  
    <p id="display"></p>
  
    <script>
        function showCoordinates(event) {
            var x = event.clientX;
            var y = event.clientY;
            var coordinates = "clientX: " +
                x + ", clientY: " + y;
            document.getElementById("display")
                .innerHTML = coordinates;
        }
    </script>
</body>
  
</html>

Producción:

3. La propiedad pageX y pageY: PageX y pageY son propiedades de solo lectura que devuelven las coordenadas horizontales y verticales respectivamente en relación con el borde izquierdo de todo el documento, es decir, en relación con el borde izquierdo del área de contenido totalmente representada en la ventana del navegador y justo debajo de la barra de URL.

Por ejemplo, si el usuario se desplaza hacia abajo en la página, aún devolverá las coordenadas relativas a la parte superior de la página, independientemente de la cantidad de desplazamiento.

Ejemplo:

HTML

<!DOCTYPE html>
<html>
  
<head>
    <style>
        div {
            width: 300px;
            height: 200px;
            border: 1px solid black;
        }
    </style>
</head>
  
<body>
    <h1 style="color: green;">
        GeeksforGeeks
    </h1>
  
    <h3>The pageX and pageY property</h3>
  
    <p>
        Mouse over the rectangle see the
        usage of the pageX and pageY
        properties
    </p>
  
    <div onmousemove="showCoordinates(event)" 
        onmouseout="clearCoordinates()">
    </div>
      
    <p id="display"></p>
  
  
    <script>
        function showCoordinates(event) {
            var x = event.pageX;
            var y = event.pageY;
            var coordinates = "pageX: " +
                x + ", pageY: " + y;
            document.getElementById("display")
                .innerHTML = coordinates;
        }
  
        function clearCoordinates() {
            document.getElementById("display")
                .innerHTML = "";
        }
    </script>
</body>
  
</html>

Producción:

Publicación traducida automáticamente

Artículo escrito por rbbansal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *