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

- - Dernière réponse :  Geff33 - 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)">
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
9
Merci
Sinon, il y a le CSS pour les visiteurs qui ont désactivé le JS :
area:hover {cursor: pointer;}

Dire « Merci » 9

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62803 internautes nous ont dit merci ce mois-ci

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
2
Merci
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';"
1
Merci
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';\"
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
107
0
Merci
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'
0
Merci
tu as oublier de refermer le onmouseout :)

onmouseover=\"document.body.style.cursor='hand';\"
onmouseout=\"document.body.style.cursor='default';\
0
Merci
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(){...}
-2
Merci
à la place de default, auto
-3
Merci
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