¿Es posible configurar el cursor para 'esperar' en toda la página html de una manera simple? La idea es mostrar al usuario que algo está sucediendo mientras se completa una llamada ajax. El siguiente código muestra una versión simplificada de lo que probé y también demuestra los problemas con los que me encuentro:
- si un elemento (# id1) tiene un estilo de cursor establecido, ignorará el establecido en el cuerpo (obviamente)
- algunos elementos tienen un estilo de cursor predeterminado (a) y no mostrarán el cursor de espera al pasar el mouse
- el elemento del cuerpo tiene una cierta altura dependiendo del contenido y si la página es corta, el cursor no se mostrará debajo del pie de página
La prueba:
<html>
<head>
<style type="text/css">
#id1 {
background-color: #06f;
cursor: pointer;
}
#id2 {
background-color: #f60;
}
</style>
</head>
<body>
<div id="id1">cursor: pointer</div>
<div id="id2">no cursor</div>
<a href="#" onclick="document.body.style.cursor = 'wait'; return false">Do something</a>
</body>
</html>
Edición posterior ...
Funcionó en Firefox e IE con:
div#mask { display: none; cursor: wait; z-index: 9999;
position: absolute; top: 0; left: 0; height: 100%;
width: 100%; background-color: #fff; opacity: 0; filter: alpha(opacity = 0);}
<a href="#" onclick="document.getElementById('mask').style.display = 'block'; return false">
Do something</a>
El problema con (o característica de) esta solución es que evitará clics debido al div superpuesto (gracias Kibbee)
Más tarde editar ...
Una solución más simple de Dorward:
.wait, .wait * { cursor: wait !important; }
y entonces
<a href="#" onclick="document.body.className = 'wait'; return false">Do something</a>
Esta solución solo muestra el cursor de espera pero permite clics.