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 :

Afficher un texte au survol de la souris


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut Afficher un texte au survol de la souris
    Salut a tous,

    désolé de pauser une question surement simple, mai sle javascript n'est pas mon fort.

    Je voudrais pouvoir faire afficher un texte sur un epage au survol d'un bouton.

    Comment faire?

    J'ai essayer un truc comme ca:

    sur le bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.astuce.text=test;
    et a l'endroit ou je veut afficher le texte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input tpye="text" id="astuce">
    Ca ne marche pas comme ca.

    Suis oubliger d'utiliser un input pour faire ca ou puisje faire ca avec un span ou un div?

    Merci d'avance .

  2. #2
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnMouseOver="document.all.texte.innerText='Salut !'"
    Pour le javascript sur ton bouton,
    et pour l'affichage, par exemple :

    Ce qui donnerai, pour exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type=button onMouseOver="document.all.texte.innerText='Salut !'" value="Ok !">
    <p id="texte"></p>
    Voilà

    Après à toi de te débrouiller...

    Et sinon n'oublie pas...

  3. #3
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    J'ai essayé ca:

    document.all.astuce.innerText='Salut !';

    avec:

    <p id="astuce"></p>

    mais ca ne marche pas .

  4. #4
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Je réctifie, ca ne marche QUE sous IE lol.

    Une idée pour que ca march esur les autres navigateurs?

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Testes avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type=button onMouseOver="document.all.astuce.innerHTML='Salut !'" value="Ok !">
    <p id="astuce"></p>
    Mais ca fonctionne avec FF et IE, donc ....

  6. #6
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    J'ai essayer ca et ca ne fonctionne pas sous FF!

    (je deteste le javascript )

  7. #7
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    perso, j'utiliserais plutôt une solution du type...

    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
     
    <style>
    #astuce1 {
      visibility: hidden;
    }
    </style>
     
    <script>
    function show(i) {
      var astuce = document.getElementById('astuce'+i);
      astuce.visibility = 'visible';
    }
     
    function hide(i) {
      var astuce = document.getElementById('astuce'+i);
      astuce.visibility = 'hidden';
    }
     
    </script>
     
    <div onmousover="show(1)" onmouseout="hide(1)">coucou</div>
    <div id="astuce1">astuce</div>

  8. #8
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    OKi je vais essayer ca.
    Mais aussi il faut que je fasse attention a un truc: Il ne faut pas que le texte agrandisse la zone ou il sera affiché. Si je fais un visibility hidden, la zone (quand il n'y aura pas de texte) sera pas affiché et donc moin haute.

    EN gros je veut faire le meme truc que phpbb a fait lorsqu'on suvol les bouton pour mettre des balises lorsque l'on poste un message (Taille du texte: [size=x-small]texte en petit[/size])
    ...

  9. #9
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    J'y arrive pas . (ou alors ca marche pas).

    voila mon bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <BUTTON type="button" class="out"   onMouseOver="this.className=\'over\';show(1);" onMouseOut="this.className=\'out\';hide(1);" onClick="BBcode(\'b\',\'postagenews\',\'news\');"><span class=bold>B</span></button>
    (les \ c'est normal c'est parce que c'est dans un echo ''

    l'endroit ou ca doit s'afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="astuce1">astuce</div>
    Etj'ai rajouter ca dans ma feuille .js qui est lié a la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function show(i) 
    {
    var astuce = document.getElementById('astuce'+i);
    astuce.visibility = 'visible';
    }
    function hide(i) 
    {
    var astuce = document.getElementById('astuce'+i);
    astuce.visibility = 'hidden';
    }
    Ai-je fais une erreur?

  10. #10
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    est-ce genre de chose que tu souhaites faire ? (fonctionne sous IE et FF)

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    span{
    color: #0000FF;
    font-weight: bold;
    visibility: hidden;
    }
     
    //-->
    </style>
    <script type="text/javascript">
    <!--
    function Affiche()
    {
     var elmt = document.getElementById("idDiv");
     elmt.style.visibility ="visible";
    }
     
    function Cache()
    {
     var elmt = document.getElementById("idDiv");
     elmt.style.visibility="hidden";
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
    <input type="button" value="Bouton" id="BNom" onmouseover="Affiche()" onmouseout="Cache()">
    <br><br>
    <div> bla bla bla</div>
    <span id="idDiv">ceci est mon texte</span>
    <div>suite du document....
     
    </div>
     
    </body>
     
    </html>

  11. #11
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    oui merci .

    Je vais adapter ca pour mon cas.

  12. #12
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Oui c'est bien ce que je veut faire sauf qu'en fait j'ai plusieurs bouton et le texte qui doit s'afficher doit etre différents au survol des différents buttons. Avec cette methode c'est toujours le meme texte qui s'affiche.

    Une idée pour y arriveR?

  13. #13
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    transmet le texte à afficher comme paramètre :

    1er exemple :

    le &nbsp; dans le span est nécessaire pour éviter un mouvement du texte qui suit le span.
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    span{
    color: #0000FF;
    font-weight: bold;
    visibility: hidden;
    }
     
    //-->
    </style>
    <script type="text/javascript">
    <!--
    function Affiche(txt)
    {
     var elmt = document.getElementById("idDiv");
     elmt.innerHTML = txt;
     elmt.style.visibility ="visible";
    }
     
    function Cache()
    {
     var elmt = document.getElementById("idDiv"); 
     elmt.innerHTML = "&nbsp;";
     elmt.style.visibility="hidden";
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
    <input type="button" value="Texte 1" id="BNom1" onmouseover="Affiche('Ceci est le texte 1')" onmouseout="Cache()">
    <input type="button" value="Texte 2" id="BNom2" onmouseover="Affiche('Texte 2 Texte 2 Texte 2')" onmouseout="Cache()">
    <input type="button" value="Texte 3" id="BNom3" onmouseover="Affiche('Alors c\'est ici que je dois afficher le texte 3?')" onmouseout="Cache()">
    <br><br>
    <div> bla bla bla</div>
    <span id="idDiv">&nbsp;</span>
    <div>suite du document....
     
    </div>
     
    </body>
     
    </html>
    2ème exemple (j'ai une préférence pour celui-ci) : on définit les textes à afficher dans un tableau. txt[0] contient la valeur à afficher lors du over sur le bouton. Dans ce cas c'est un index qui est transmit comme paramètre à la fonction. Tu remarqueras le onload="Cache(0)" pour initialiser le contenu du span avec la valeur par défaut.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    span{
    color: #0000FF;
    font-weight: bold;
    visibility: hidden;
    }
     
    //-->
    </style>
    <script type="text/javascript">
    <!--
    txt = new Array();
    txt[0] =  "&nbsp;"; // valeur par defaut
    txt[1] =  "Ceci est le texte 1";
    txt[2] =  "Texte 2 Texte 2 Texte 2";
    txt[3] =  "Alors c 'est ici que je dois afficher le texte 3?";
     
     
    function Affiche(nTxt)
    {
     var elmt = document.getElementById("idSpan");
     elmt.innerHTML = txt[nTxt];
     elmt.style.visibility ="visible";
    }
     
    function Cache(nDefaut)
    {
     var elmt = document.getElementById("idSpan");
     elmt.innerHTML = "txt[nDefaut]"; //valeur par défaut
     elmt.style.visibility="hidden";
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="Cache(0)">
    <input type="button" value="Texte 1" id="BNom1" onmouseover="Affiche(1)" onmouseout="Cache(0)">
    <input type="button" value="Texte 2" id="BNom2" onmouseover="Affiche(2)" onmouseout="Cache(0)">
    <input type="button" value="Texte 3" id="BNom3" onmouseover="Affiche(3)" onmouseout="Cache(0)">
    <br><br>
    <div> bla bla bla</div>
    <span id="idSpan"></span>
    <div>suite du document....
     
    </div>
     
    </body>
     
    </html>
    N'oublie pas que le visibility=hidden n'est pas display=none : dans le 1er cas l'élément est simplement caché, second cas l'élément est retiré de la page.

  14. #14
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Oki merci .

    Histoire d'encore compliquer un peu les chose. Mettons que j'ai plusieurs formulaires comme ca sur une meme page.

    DOnc j'aurais 2 fois (ou plus) <span id="idDiv">&nbsp;</span>

    Et ca ne sera pas valider au niveau du validateur HTML car les id ne doivent etre utilisé qu'un seul fois pour le meme nom.

    Peut etre en envoyant le nom de l'id en argument suplémentaire dans la fonction ca marchera?

  15. #15
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Peut etre en envoyant le nom de l'id en argument suplémentaire dans la fonction ca marchera?
    sans aucun problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function Affiche(txt, idElement)
    {
     var elmt = document.getElementById(idElement);
     elmt.innerHTML = txt;
     elmt.style.visibility ="visible";
    }
     
    function Cache(idElement)
    {
     var elmt = document.getElementById(idElement);
     elmt.innerHTML = "&nbsp;"; //valeur par défaut
     elmt.style.visibility="hidden";
    }
    et dans le code HTML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="button" value="Texte 1" id="BNom1" onmouseover="Affiche('MonTexte', 'idElement')"
    onmouseout="Cache('idElement')">
    <span id="idElement">&nbsp;</span>

  16. #16
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Meric beaucoup auteur je vais essayer ca .

  17. #17
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    C'est bon ca marche nickel .

    Encore merci.


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

Discussions similaires

  1. afficher du texte au passage de la souris
    Par colorandesign dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/10/2008, 18h37
  2. afficher texte au survol de la souris
    Par temperature dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/05/2008, 10h11
  3. Comment modifier la graisse et la taille d'un texte sur survol de la souris ?
    Par hellspawn_ludo dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 04/01/2008, 12h46
  4. afficher un text au survol d'un input
    Par mimagyc dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/12/2007, 14h19
  5. Afficher image agrandi au survol de la souris
    Par brasco06 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/01/2007, 16h35

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