2010-09-17 23 views
5

Quindi, quello che sto cercando di fare è cambiare il cursore in modo che attenda quando si carica una pagina.cambia cursore durante il caricamento della pagina

Ho pensato che questo era possibile con i CSS, ho cercando di realizzare questo quando qualcuno clicca su qualche link, quindi quello che ho è questa:

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

Ma questo non funziona, è una mano quando hover collegamenti, e quando per un secondo è in attesa, ma voglio che l'attesa continui finché non viene visualizzata la nuova pagina.

Quindi la mia domanda è: È sbagliato? Per ottenere quello che voglio?
Oppure devo usare javascript?

+0

'cursor: pointer;' - il vecchio "mano" IE non è X-browser, ed è andato in IE9. – scunliffe

risposta

12

Il modo per farlo è qualcosa di simile:

Nella prima pagina (da mostrare non appena si fa clic sul collegamento):

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

Nella seconda pagina (per mostrare fino a quando la nuova pagina termina il caricamento):

<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

Ho anche provato qualcosa di simile, ma non ha funzionato. Certamente ho fatto qualcosa di sbagliato, suppongo che applicandolo all'elemento. Come posso applicare questo all'interno del link, all'interno di html? – pavid

+0

Ok, ora capisco - hai un processo in 2 fasi - 1) nell'evento link onclick(), devi impostare il cursore per attendere il corpo del documento. 2) nella pagina NUOVA, è necessario impostare il cursore per attendere fino al termine del caricamento della pagina (come nella mia risposta sopra). Non importa quello che fai, ci sarà un po 'di tempo tra lo scarico della vecchia pagina e il caricamento della nuova pagina quando non hai il controllo del cursore ... – Basic

+0

Questo era il mio problema! Non ha messo nulla sulla nuova pagina, anche se ha perfettamente senso! In realtà non stavo davvero capendo, ma ha senso. Molte grazie! :) – pavid

1

Il significato della proprietà cursor in relazione al selettore CSS è che quando il mouse si trova su un elemento che corrisponde al selettore, utilizzare il cursore. Quindi, per cambiare il cursore per il documento complessivo che devi fare qualcosa di simile:

html { 
    cursor: wait; 
} 

Ovviamente, questo cambierà il cursore per sempre (o fino a quando l'utente chiude la pagina, si verifica per primo). Per fare questo in modo dinamico è necessario utilizzare javascript:

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

noti che cursor:hand è supportato solo da IE e necessario solo per IE 5. Il nome del cursore corretto è pointer. Ovviamente, se hai bisogno di supportare IE 5, devi usare cursor:hand. Invece di utilizzare browser sniffing è possibile utilizzare il nome della classe per cambiare il cursore:

CSS:

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

JS:

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

Ho anche provato qualcosa di simile, ma non ha funzionato. Certamente ho fatto qualcosa di sbagliato, suppongo applicandolo all'elemento. Come posso applicare questo all'interno del link, all'interno di html? – pavid

2

come 'risposto' dice che si può utilizzare i CSS per attaccare il cursore l'elemento HTML, che dovrebbe coprire l'intera pagina.

Ma è necessario aggiungere un listener a ogni singolo ancoraggio nella pagina con un onclick, che chiama una funzione che imposta il cursore sull'elemento HTML o sul corpo. Quando la pagina ricarica il cursore tornerà al default di nuovo come trhe javascript avrebbe fatto rinfrescato

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

beh non sono sicuro del perché, ma non sono in grado di far funzionare nessuno di questi esempi – pavid

+0

Hai una pagina di esempio che potremmo esaminare? – Alex

+0

Beh, ho provato il tuo esempio. Poi nel modello html, ho un tavolo, all'interno di ho il link: lala e il tuo esempio. Nel css quando a: hover, il cursore è puntatore. e per il resto è usato il tuo esempio..Perhabs è qualcosa di sciocco, Javascript è ancora strano per me: P – pavid

Problemi correlati