2010-09-17 6 views
5

Donc, ce que j'essaie de faire est de changer le curseur pour attendre quand une page est en cours de chargement.Changer le curseur lors du chargement de la page

Je pensais que cela était possible avec css, je cherche à atteindre cet objectif lorsque quelqu'un clique sur un lien, donc ce que j'ai est le suivant:

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

Mais cela ne fonctionne pas, il est une main quand vol stationnaire liens, et quand pour une seconde est d'attente, mais je veux que cette attente de continuer jusqu'à ce que la nouvelle page apparaît.

Donc, ma question est: Est-ce faux? Pour réaliser ce que je veux?
Ou dois-je utiliser javascript?

+0

'curseur: pointeur;' - l'ancien IE « main » est pas X-navigateur, et est allé dans IE9. – scunliffe

Répondre

12

La façon de faire est quelque chose comme ceci:

Sur la première page (à afficher dès que le lien est cliqué):

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

Sur la deuxième page (pour afficher jusqu'à ce que la nouvelle page se termine le chargement):

<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

J'avais aussi essayé quelque chose comme ça, mais ça ne marchait pas. Certes, j'ai fait quelque chose de mal, je suppose que l'appliquer à l'élément. Comment puis-je l'appliquer à l'intérieur du lien, à l'intérieur de html? – pavid

+0

Ok, maintenant je comprends - vous avez un processus en deux étapes - 1) dans l'événement onclick() liens, vous devez définir le curseur pour attendre le corps du document. 2) sur la NOUVELLE page, vous devez placer le curseur pour attendre jusqu'à ce que la page finisse de charger (comme dans ma réponse ci-dessus). Peu importe ce que vous faites, il y aura un peu de temps entre le déchargement de l'ancienne page et le chargement de la nouvelle page quand vous n'avez aucun contrôle sur le curseur ... – Basic

+0

C'était mon problème! Il n'a rien mis sur la nouvelle page, bien que cela soit totalement logique! En fait, je n'étais pas vraiment compréhensif, mais comme ça, j'ai du sens. Merci beaucoup! :) – pavid

1

La signification de la propriété cursor par rapport au sélecteur CSS est que lorsque la souris survole un élément correspondant au sélecteur, utilisez le curseur. Donc, pour changer le curseur pour l'ensemble du document que vous devez faire quelque chose comme:

html { 
    cursor: wait; 
} 

De toute évidence, cela va changer pour toujours le curseur (ou jusqu'à ce que l'utilisateur ferme la page, selon la première éventualité). Pour utiliser ce faire, vous devez dynamiquement à javascript:

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

Notez que cursor:hand est uniquement prise en charge par IE et nécessaires que pour IE 5. Le nom du curseur correct est pointer. Bien sûr, si vous avez besoin de soutenir IE 5, vous devez utiliser cursor:hand. Au lieu d'utiliser le navigateur que vous renifler pouvez utiliser le nom de classe pour changer le curseur:

CSS:

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

JS:

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

J'avais aussi essayé quelque chose comme ça, mais ça ne marchait pas. Certes, j'ai fait quelque chose de mal, je suppose que l'appliquer à l'élément.Comment puis-je appliquer cela à l'intérieur du lien, à l'intérieur de HTML? – pavid

2

Comme répondit 'dit que vous pouvez utiliser les CSS pour fixer le curseur sur l'élément html, ce qui devrait couvrir toute la page.

Mais vous aurez besoin d'ajouter un écouteur à chaque ancre de la page avec un onclick, qui appelle une fonction qui place le curseur sur l'élément HTML ou body. Lorsque la page le curseur se recharge revenir à nouveau par défaut comme trhe javascript serait rafraîchie ai

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

bien je ne sais pas pourquoi mais je ne suis pas en mesure de faire un de ces exemples de travail – pavid

+0

Avez-vous un exemple de page que nous pourrions regarder? – Alex

+0

Eh bien, j'ai essayé votre exemple. Ensuite, dans le modèle html, j'ai une table, à l'intérieur J'ai le lien: lala et votre exemple. Dans le css quand a: hover, le curseur est un pointeur. et pour le reste est utilisé votre exemple..Perhabs est quelque chose de stupide, Javascript est toujours bizarre pour moi: P – pavid

Questions connexes