2010-09-17 39 views
5

Entonces, lo que trato de hacer es cambiar el cursor para esperar cuando se carga una página.cambiar el cursor al cargar la página

pensé que esto era posible con css, yo tratando de lograr esto cuando alguien haga clic en algún enlace, por lo que lo que tengo es la siguiente:

#something a:hover { cursor: hand; } 
#something a:active { cursor: wait; } 

Pero esto no funciona, es una mano cuando la libración enlaces, y cuando por un segundo es esperar, pero quiero que esta espera continúe hasta que aparezca la nueva página.

Así que mi pregunta es: ¿Es esto incorrecto? Para lograr lo que quiero?
¿O tengo que usar javascript?

+0

'cursor: puntero;' - el viejo "mano" IE no es X-navegador, y se ha ido en IE9. – scunliffe

Respuesta

12

La manera de hacer esto es algo como esto:

En la primera página (para mostrar tan pronto como se haga clic en el enlace):

<a href="http://www.example.com/Page2.html" onclick="document.body.style.cursor='wait'; return true;"> 

En la segunda página (para mostrar hasta que la nueva página termine de cargarse):

<script type="text/javsacript"> 
    //Set the cursor ASAP to "Wait" 
    document.body.style.cursor='wait'; 

    //When the window has finished loading, set it back to default... 
    window.onload=function(){document.body.style.cursor='default';} 
</script> 
+0

También había intentado algo así, pero no funcionó. Ciertamente, hice algo mal, supongo que lo apliqué al elemento. ¿Cómo aplico esto dentro del enlace, dentro de html? – pavid

+0

Ok, ahora entiendo que tiene un proceso de 2 pasos: 1) en el evento de enlaces onclick(), debe configurar el cursor para esperar al cuerpo del documento. 2) en la página NUEVA, debe configurar el cursor para esperar hasta que la página termine de cargarse (como en mi respuesta anterior). No importa lo que hagas, habrá un poco de tiempo entre la descarga de la página anterior y la carga de la nueva página cuando no tienes control sobre el cursor ... – Basic

+0

¡Ese era mi problema! No puso nada en la nueva página, ¡aunque tiene mucho sentido! En realidad, no estaba realmente entendiendo pero tiene sentido. ¡Muchas gracias! :) – pavid

1

El significado de la propiedad cursor en relación con el selector CSS es que cuando el mouse está sobre un elemento que coincide con el selector, utilice el cursor. Así que para cambiar el cursor por el documento general que tiene que hacer algo como:

html { 
    cursor: wait; 
} 

Obviamente, esto va a cambiar el cursor para siempre (o hasta que el usuario cierra la página, lo que ocurra primero). Para hacer esto de forma dinámica es necesario utilizar javascript:

document.body.style.cursor = 'wait'; 

Tenga en cuenta que cursor:hand es compatible únicamente por el IE y sólo necesita para IE 5. El nombre del cursor correcto es pointer. Por supuesto, si necesita soportar IE 5, necesita usar cursor:hand. En lugar de utilizar el navegador oler puede utilizar el nombre de clase para cambiar el cursor:

CSS:

.handCursor { 
    cursor: pointer; 
    cursor: hand; 
} 

JS:

document.body.className = 'handCursor'; 
+0

También había intentado algo así, pero no funcionó. Ciertamente, hice algo mal, supongo que lo apliqué al elemento. ¿Cómo lo aplico dentro del enlace, dentro de html? – pavid

2

Como 'contestado' dice que usted puede utilizar CSS para fijar el cursor hasta el elemento html, que debe cubrir toda la página.

Pero tendrá que agregar un oyente a cada ancla en la página con un clic, que llama a una función que establece el cursor en el elemento HTML o body. Cuando la página se vuelve a cargar el cursor se vuelve a los valores predeterminados de nuevo como trhe Javascript hubiera refrescado

var anchors = document.getElementsByTagName("a"); 
for(var i=0,len=anchors.length;i<len;i++) 
{ 

anchors[i].onclick = function() 
{ 

document.body.style.cursor = "wait"; 

}; 

} 
+0

Bueno, no estoy seguro de por qué, pero no puedo hacer que ninguno de estos ejemplos funcione – pavid

+0

¿Tiene una página de ejemplo que podamos ver? – Alex

+0

Bueno, probé tu ejemplo. Luego, en la plantilla html, tengo una tabla, dentro de Tengo el enlace: lala y su ejemplo. En el css cuando a: hover, el cursor es puntero. y para el resto se usa tu ejemplo ... Perhabs es algo tonto, Javascript todavía es raro para mí: P – pavid

Cuestiones relacionadas