mudar o cursor ao carregar a página

o que eu estou a tentar fazer é mudar o cursor para esperar quando alguma página estiver a carregar.

eu pensei que isto era possível com o css, eu tento conseguir isto quando alguém clica em algum link, então o que eu tenho é isto:

#something a:hover { cursor: hand; }
#something a:active { cursor: wait; }
Mas isto não funciona, é uma mão quando hover links, e quando por um segundo é esperar, mas quero que esta espera continue até que a nova página apareça.

Então a minha pergunta é:: Isto é errado? Para conseguir o que quero?
Ou tenho de usar javascript?

Author: psoares, 2010-09-17

3 answers

A maneira de fazer isto é algo como isto:

Na primeira página (para mostrar logo que o link é clicado):

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

Na segunda página (para mostrar até a nova página terminar de carregar):

<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>
 20
Author: Basic, 2010-09-17 11:56:37

Como 'respondida' diz que pode usar o CSS para anexar o cursor ao elemento html, que deverá cobrir toda a página.

Mas terá de adicionar um ouvinte a cada âncora da página com um onclick, que chama uma função que define o cursor no elemento HTML ou body. Quando a página voltar a carregar, o cursor irá voltar ao valor por omissão, dado que o javascript trhe teria actualizado

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

anchors[i].onclick = function()
{

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

};

}
 2
Author: Alex, 2010-09-17 10:43:43

O significado da propriedade cursor em relação ao selector de CSS é que, quando o rato estiver sobre um elemento que corresponda ao selector, use então o cursor. Então, para mudar o cursor para o documento global você precisa fazer algo como:

html {
    cursor: wait;
}

Obviamente, isto irá mudar o cursor para sempre (ou até o utilizador fechar a página, o que vier primeiro). Para fazer isso dinamicamente você precisa usar javascript:

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

Note que cursor:hand só é suportado pelo IE e só é necessário para o IE 5. O nome correcto do cursor é pointer. Claro, se você precisar de suporte IE 5 você precisa usar cursor:hand. Em vez de usar a pesquisa do navegador, poderá usar o nome da classe para mudar o cursor:

CSS:

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

JS:

document.body.className = 'handCursor';
 1
Author: slebetman, 2010-09-17 10:37:26