Saltar al contenido

¿Es posible ocultar el cursor en una página web usando CSS o Javascript?

Te sugerimos que pruebes esta solución en un entorno controlado antes de enviarlo a producción, un saludo.

Solución:

Con CSS:

selector  cursor: none; 

Un ejemplo:

Some stuff

Para configurar esto en un elemento en Javascript, puede usar el style propiedad:

Si desea configurar esto en todo el cuerpo:


Sin embargo, asegúrese de que realmente desea ocultar el cursor. Puede De Verdad molestar a la gente.

API de bloqueo de puntero

Mientras que la cursor: none La solución CSS es definitivamente una solución sólida y fácil solución alternasi su objetivo real es retirar el cursor predeterminado mientras se utiliza su aplicación web, o implementar su propio interpretación del movimiento del mouse sin procesar (para juegos FPS, por ejemplo), es posible que desee considerar usar la API Pointer Lock en su lugar.

Puede usar requestPointerLock en un elemento para eliminar el cursor y redirigir todo mousemove eventos a ese elemento (que puede manejar o no):

document.body.requestPointerLock();

Para liberar el bloqueo, puede usar exitPointerLock:

document.exitPointerLock();

Notas adicionales

Sin cursor, de verdad

Esta es una llamada API muy poderosa. No solo hace que el cursor sea invisible, sino que en realidad elimina el cursor nativo de su sistema operativo. No podrá seleccionar texto ni hacer cualquier cosa con su mouse (excepto escuchando algunos eventos de mouse en su código) hasta que se libere el bloqueo del puntero (ya sea usando exitPointerLock o presionando ESC en algunos navegadores).

Es decir, no puede salir de la ventana con el cursor para que se vuelva a mostrar, ya que no hay cursor.

Restricciones

Como se mencionó anteriormente, esta es una llamada API muy poderosa y, por lo tanto, solo se permite realizarla en respuesta a alguna interacción directa del usuario en la web, como un clic; por ejemplo:

document.addEventListener("click", function () 
    document.body.requestPointerLock();
);

También, requestPointerLock no funcionará desde un espacio aislado iframe a menos que el allow-pointer-lock se establece el permiso.

Notificaciones de usuario

Algunos navegadores solicitarán al usuario una confirmación antes de activar el bloqueo, algunos simplemente mostrarán un mensaje. Esto significa que es posible que el bloqueo del puntero no se active inmediatamente después de la llamada. Sin embargo, la activación real del bloqueo del puntero se puede escuchar escuchando el pointerchange evento en el elemento en el que requestPointerLock fue llamado:

document.body.addEventListener("pointerlockchange", function () 
    if (document.pointerLockElement === document.body) 
        // Pointer is now locked to .
    
);

La mayoría de los navegadores solo mostrarán el mensaje una vez, pero Firefox ocasionalmente enviará spam en cada llamada. AFAIK, esto solo puede solucionarse mediante la configuración del usuario, consulte Desactivar notificación de bloqueo de puntero en Firefox.

Escuchar el movimiento del ratón en bruto

La API Pointer Lock no solo elimina el mouse, sino que redirige los datos de movimiento del mouse sin procesar al elemento. requestPointerLock fue llamado. Esto se puede escuchar simplemente usando el mousemove evento, luego accediendo al movementX y movementY propiedades en el objeto de evento:

document.body.addEventListener("mousemove", function (e) 
    console.log("Moved by " + e.movementX + ", " + e.movementY);
);

Eres capaz de animar nuestra función escribiendo un comentario o valorándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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