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 span


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut afficher un span
    bonjour à tous

    j'ai ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div style="width:600px;color:blue;">titre rubrique
    <span onmouseover="this.style.display='block'"
       onmouseout="this.style.display='none'"> 
    <B>Déplacez le pointeur de la souris sur ce texte, puis n'importe où sur la page.
    </span>  
     
    </div>
    j'aimerai que quand je vais sur "titre rubrique" cela m'affiche mon petit texte sur lequel je pourrais cliquer. quand je ne suis plus sur "titre rubrique" ou le petit texte cela ne s'affiche plus

    je debute en js et je comprends pas grand chose

    pour l'instant mon petit texte s'en va quand je passe dessus

    quelqu'un pourrait il m'aider?


    merci beaucoup

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    le mouseover doit être sur le div et controler le span ...

  3. #3
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    bon en faite j'ai chopé un autre code qui me parait plus logique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <div style="float:left;"><a href="#" onMouseOver="document.getElementById('sousmenuvg').style.display='block';" onMouseOut="document.getElementById('sousmenuvg').style.display='none';">GIRLS</a></div>
     
     
     
     
    <span id="sousmenuvg"><a href="#">Junior</a>. <a href="#">Kid</a>. <a href="#">Baby</a></span>
    mais le hic est que quand mon curseur n'est plus sur "GIRLS" il ne m'affiche plus le reste qui devrait etre normalement cliquable (junior, kid, baby)

    merci

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    forcément tu le rends invisible sur le onmouseout ...

  5. #5
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    huumm ok

    mai si par exemple je voudrais que si je ne suis ni sur girls ni sur les elements qui doivent s'afficher, ces elements ne s'affichent pas (d'où mon mouseout)

    je fais comment?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    sujat maintes fois traité, il faut faire un setTimeout sur le onmouseout qui cache les "sous elements" et un clearTimeout sur le onmouseover des sous elements et un display none sur le onmouseout des sous elements

  7. #7
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    jpatauge ya rien qui marche

  8. #8
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    bon ba j'ai tenté ça :
    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
     
     
    <SCRIPT language=javascript>
    var timer;
       function Timer() {
           var dt=new Date()
           window.status=dt.getHours()+":"+dt.getMinutes()+":"+dt.getSeconds();
          timer= setTimeout("Timer()",1000);
       }
       Timer();
    </SCRIPT>
     
     
    <div style="float:left;"><a href="#" onMouseOver="document.getElementById('sousmenuvg')..clearTimeout(timer).style.display='block';" onMouseOut="document.getElementById('sousmenuvg') .setTimeout("Timer()",1000).style.display='none';">GIRLS</a></div>
    <span id="sousmenuvg"><a href="#" >Junior</a>. <a href="#"  >Kid</a>. <a href="#" >Baby</a></span><BR />
    mais ça marche pas des masses

  9. #9
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut simuler mouseenter et mouseleave
    Salut,

    Tu peux utiliser ce script :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
    <head>
      <title>simuler mouseenter et mouseleave</title>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
      <style type="text/css">
        * {margin:0;padding:0;color:#ddd;}
        body {margin:10px;background:#000;color:#ddd;font-size:1em;font-family:Helvetica, Arial, sans-serif;}
        .conteneur {width:200px;height:200px;background:#333;}
        .titre {display:none;background:#666;}
      </style>
    </head>
    <body>
      <div id="d1" class="conteneur">
        <h1 class="titre">titre 1</h1>
      </div>
      <div class="conteneur">
        <h1 class="titre">titre 2</h1>
      </div>
      <script type="text/javascript">
      var FC = {
        DOM: {
          getElementsByClassName: function(classe, noeud, balise) {
            var elements = [];
            noeud = noeud || document;
            if (document.getElementsByClassName) { elements = noeud.getElementsByClassName(classe); } 
            else {
              balise = balise || "*";
              var elementsCourants = noeud.getElementsByTagName(balise);
              var pattern = new RegExp("(^|\\s)" + classe + "(\\s|$)");
              for (var i=0,imax=elementsCourants.length; i<imax; i++) {
                if (pattern.test(elementsCourants[i].className)) { elements.push(elementsCourants[i]); }
              }
            }
            return elements;
          }
        },
        Evenement: {
          evenements: [],
          ajouter: function(elm, evt, fn) {
            var fni = function(e) {                             // prévient le comportement par défaut
              if (fn(e)===false) {                              // false explicitement car peut être undefined en cas de délégation d'évènement
                if (e.preventDefault) { e.preventDefault(); }
                else { e.returnValue = false; }
              }
            };
            if (document.addEventListener) { elm.addEventListener(evt, fni, false); }
            else if (document.attachEvent) { elm.attachEvent("on" + evt, fni); }
            FC.Evenement.evenements.push([elm, evt, fni]);
          },
          supprimer: function(elm, evt, fn) {
            var evts = FC.Evenement.evenements;
            for (var i=evts.length-1; i>=0; i--) {
              if (evts[i][0]===elm && evts[i][1]===evt) {
                if (document.removeEventListener) { elm.removeEventListener(evts[i][1], evts[i][2], false); } 
                else if (document.detachEvent) { elm.detachEvent("on" + evts[i][1], evts[i][2]); }
                FC.Evenement.evenements.splice(i,1);
              }
            }
          }
        }
      };
      FC.Evenement.ajouter(document, "mouseover", function(e) {
        var elm = e.target || event.srcElement;
        var fn = function(n) { alert(n); }
        if (elm.className.indexOf("conteneur")>-1) {
          var elms = FC.DOM.getElementsByClassName("titre", elm, "h1");
          for (var i=0, imax=elms.length;i<imax;i++) {
            elms[i].style.display="block";
          }
        }
      });
      FC.Evenement.ajouter(document, "mouseout", function(e) {
        var elm = e.target || event.srcElement;
        var elmDestination = e.relatedTarget || event.toElement;
        if (elm.className.indexOf("conteneur")===-1 && elmDestination.className.indexOf("titre")===-1) {
          var elms = FC.DOM.getElementsByClassName("titre", document, "h1");
          for (var i=0, imax=elms.length;i<imax;i++) {
            elms[i].style.display="none";
          }
        }
      });
      </script>
    </body>
    </html>
    ou te renseigner sur la façon de simuler onmouseenter et onmouseleave qui sont des évènements propres à IE.

    Dans mon cas, je joue préfère jouer avec les classes CSS. Ces propriétés sont importantes : e.relatedTarget ; event.toElement. L'idée est qu'au onmouseout des éléments je vérifie s'ils ont la classe CSS "conteneur" ou "titre". S'ils ne l'ont pas, je cache tous les titres, pour ensuite afficher le titre voulu au onmouseover.

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    non ... n'existe pas en js ...
    il faut attribuer le setTimeout à une variable
    et faire le cleaTimeout sur la variable

Discussions similaires

  1. [PDO] Mes span ne s'affichent pas
    Par dylan.pascal dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 25/06/2013, 18h11
  2. [W3C] Validation avec <span> pour afficher résultat Javascript
    Par Pierrick81 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 23/08/2011, 11h53
  3. Réponses: 5
    Dernier message: 25/08/2008, 18h31
  4. afficher du texte
    Par Mau dans le forum OpenGL
    Réponses: 10
    Dernier message: 24/06/2003, 15h31
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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