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

Vue hybride

Linaa Changer une image onmouseover 05/03/2006, 23h31
Matthieu2000 :idea: :?: 06/03/2006, 10h00
jak0 Si tu affiche les proprietes... 06/03/2006, 10h38
Linaa Merci à vous 2, ça... 06/03/2006, 13h46
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    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
    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 Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    img.indexOf("imgs/image1.gif") >=0
    :

  3. #3
    Membre confirmé
    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
    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 émérite
    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
    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