Posez votre question Signaler

JS : Changer curseur sur1 zone cliquable [Résolu]

Cécilia - Dernière réponse le 1 févr. 2011 à 16:43
Bonjour à tous et merci pour votre lecture ;o)

J'ai crée une page web, extension php, qui contient une image sur laquelle il y a des zones cliquables (<MAP> <area>).

Dans ces zones cliquables, j'ai utilisé l'attribut 'onMouseOver' : il appelle une fonction pour faire apparaître des info-bulles personnalisées.

De plus, pour ma page, j'ai un curseur en forme de seringue (c'est un site pour une école d'infirmière) ;o)

Mon problème est que lorsque je passe sur les zones cliquables en question, je voudrais que mon curseur change et devienne une petite main (HAND_cursor ou cursor:hand ou encore cursor:pointer).
Cela ne marche pas, j'ai donc voulu créer une fonction qui le fait, et que j'appelerai lorsque la souris passe sur la zone (onMouseOver), mais ça ne marche toujours pas, et en plus mon info-bulle n'apparaît plus.

J'ai l'impression que dans mon attribut onMouseOver je ne peux pas appeler 2 fonctions. J'ai donc essayé de mettre tout le code dans la même fonction mais ça ne marche pas non plus.

J'ai aussi essayé de mettre 2 fois l'attribut onMouseOver mais ça ne marche toujours pas.......

Voilà ma ligne et mon code concerné (attention je suis pas une pro !! ;o) :

<SCRIPT LANGUAGE="JavaScript">
function ChangerCurseur()
{
Cursor curseur = new Cursor(hand_CURSOR);
setCursor(curseur);
}
</SCRIPT>


function RendElemVisible(Id)
{
var Elem = document.all[Id].style;
Elem.left = event.clientX + 30;
Elem.top = event.clientY + 5;
Elem.visibility = "visible";
}


<area shape="rect" coords="51,43,191,59" href="presentation.php" name="info1" onMouseOver="ChangerCurseur(), RendElemVisible(this.name)" onMouseOut="RendElemInvisible(this.name)">
Lire la suite 

JS : Changer curseur sur1 zone cliquable »

9 réponses
Réponse
+6
moins plus
Sinon, il y a le CSS pour les visiteurs qui ont désactivé le JS :
area:hover {cursor: pointer;}
DMike92 - 27 déc. 2009 à 22:59
Mais oui mais ça semble ne pas fonctionner (IE8)
Ni dans la feuille de style (pourtant bien reconnue, ni inline :

<area style="cursor:pointer;" shape="rect" coords="... etc.

:-(
Michel
Ajouter un commentaire
Réponse
+0
moins plus
Salut Cécilia
sous IE5 cela fonctionne :
onmouseover=\"document.body.style.cursor='hand';\" 
onmouseout=\"document.body.style.cursor='default';


mais sur un nav plus recent vaut mieux 'pointer'
Ajouter un commentaire
Réponse
+0
moins plus
la balise <area> ne supporte pas le style, donc c'est normal si <area style="cursor:pointer;" ne fonctionne pas. par contre tu dois pouvoir faire area.onmouseover = function(){...}
Ajouter un commentaire
Réponse
+0
moins plus
Ca fonctionne aussi sur Safari (5.0.3) et pour éviter de mettre un onmouseout pour remettre un cursor par défaut, il suffit de préciser que le changement de curseur ne s'applique qu'à l'objet en question (une image par exemple) en utilisant la syntaxe "this" au lieu de "document.body". Exemple
onmouseover="this.style.cursor='pointer';"
Ajouter un commentaire
Réponse
-1
moins plus
tu as oublier de refermer le onmouseout :)

onmouseover=\"document.body.style.cursor='hand';\"
onmouseout=\"document.body.style.cursor='default';\
Ajouter un commentaire
Réponse
-1
moins plus
onmouseover=\"document.body.style.cursor='hand';\"

Cette ligne est fausse et spécifique à IE.
Pour respecter le W3C, le type de cursor correspondant est 'pointer'.
onmouseover=\"document.body.style.cursor='hand';\" onmouseout=\"document.body.style.cursor='auto';\"
Ajouter un commentaire
Réponse
-2
moins plus
à la place de default, auto
Ajouter un commentaire
Réponse
-3
moins plus
bonjour,

excellent ce code javascript !!

mais sous safari ca ne fonctionne pas ???? mais bien content de retrouver ma main sous IE 8

Merci beaucoup

Fabien
Ajouter un commentaire
Ce document intitulé « JS : Changer curseur sur1 zone cliquable » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?