IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Changer une image onmouseover


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut Changer une image onmouseover
    Bonjour,

    Je voudrais qu'au survol d'un lien, l'image du lien change.
    J'ai fait une fonction pour cela, mais cela ne marche pas!

    Voici ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html>
     
    <head>
    <script type="text/javascript">
    function changeImg(mn) {
    	var img = document.getElementById(mn).src;
    	if (img == "imgs/image1.gif")
    		document.getElementById(mn).src = "imgs/image2.gif";
    	else {
    		document.getElementById(mn).src = "imgs/image1.gif";
    	}
    }
    </script>
    </head>
     
    <body>
    <a href="index.php" title="Test" onmouseover="changeImg('mn1')" onmouseout="changeImg('mn1')">
    	<img id="mn1" src="imgs/image2.gif" />Test</a>
    </body>
     
    </html>
    Le problème est que l'image change une première fois, puis reste la même.

    En affichant le contenu de img, j'obtiens le chemin complet de l'image, c'est pour cela que ça passe toujours dans le else.
    Mais comment dois-je faire pour que ça fonctionne ?

    Merci de votre aide.

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    img.indexOf("imgs/image1.gif") >=0
    :

  3. #3
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    Si tu affiche les proprietes de l'image a l'aide du navigateur, tu aura effectivement le chemin complet, toutefois dans le code tu aura toujours le chemin relatif que tu lui donne.

    Je pense que le indexof fonctionne bien, mais il me semble qu'il faut lui fixé la position initiale de recherche, ici 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Chaine.indexOf(sous-chaîne, position)
    -->
    img.indexOf("imgs/image1.gif", 0) != -1
    Donc je mettrai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html>
     
    <head>
    <script type="text/javascript">
    function changeImg(mn) {
       var img = document.getElementById(mn).src;
       if (img.indexOf("imgs/image1.gif", 0) != -1) {
          document.getElementById(mn).src = "imgs/image2.gif";
       } else {
          document.getElementById(mn).src = "imgs/image1.gif";
       }
    }
    </script>
    </head>
     
    <body>
    <a href="index.php" title="Test" onmouseover="changeImg('mn1')" onmouseout="changeImg('mn1')">
       <img id="mn1" src="imgs/image2.gif" />Test</a>
    </body>
     
    </html>
    En esperant t'avoir aidé un peu...

  4. #4
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Merci à vous 2, ça fonctionne.

    Si on ne met pas la position, ça fonctionne également, j'pense que si on ne met rien, la position est par défaut à 0.

    Citation Envoyé par jak0
    toutefois dans le code tu aura toujours le chemin relatif que tu lui donne.
    Bah la comparaison devrait fonctionner alors ?!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/11/2006, 19h57
  2. Changer une image sur le hover
    Par taffMan dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 05/11/2006, 20h44
  3. Changer une image
    Par franck.automaticien dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/02/2006, 09h41
  4. changer une image
    Par lemmings dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/09/2005, 15h43
  5. [JLabel] changer une image
    Par dadg dans le forum Composants
    Réponses: 5
    Dernier message: 28/09/2004, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo