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 :

Menu déroulant et mouseover


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Par défaut Menu déroulant et mouseover
    Bonjour,
    Je cherche à faire un menu déroulant, j'ai utilisé le code suivant. Les sous-menu apparaissent quand la souris les survole. Mais lorsque la souris quitte le menu et se place à sa droite, à sa gauche ou au dessous, le menu ne se referme pas. Il se referme juste quand elle est au dessus. Comment faire ? Merci !

    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
    <div id="menu">
        <dl>
          <dt onmouseover="javascript:montre();"><a href="" title="Retour &agrave; l'accueil">Accueil</a></dt>
        </dl>
        <dl>
          <dt onmouseover="javascript:montre('smenu1');">Menu1</dt>
          <dd id="smenu1">
            <ul>
              <li><a href="droitetstatut.html">Sousmenu1-1</a></li>
              <li><a href="#">Sousmenu2-2</a></li>
               </ul>
          </dd>
        </dl>
        <dl>
          <dt onmouseover="javascript:montre('smenu2');">Menu2</dt>
          <dd id="smenu2">
            <ul>
              <li><a href="#">Sousmenu2-1</a></li>
              <li><a href="#">Sousmenu2-2</a></li>
                    </ul>
          </dd>
        </dl>
             </div>
    </div>
    Et le javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    window.onload=montre;
    function montre(id) {
    var d = document.getElementById(id);
    	for (var i = 1; i<=10; i++) {
    		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
    	}
    if (d) {d.style.display='block';}
    }

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour et bienvenue sur Developpez ,
    il faut aussi que tu appelles ta fonction sur onmouseover ...

    ... et que tu enlèves le "Javascript:" dans le code des évènements

    A+

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour et bienvenue sur Developpez ,
    il faut aussi que tu appelles ta fonction sur onmouseover ...

    ... et que tu enlèves le "Javascript:" dans le code des évènements

    A+

    onmouseout plutôt que onmouseover, si on veut faire disparaitre le menu quand la souris n'est plus dessus.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par tusssss Voir le message
    onmouseout plutôt que onmouseover, si on veut faire disparaitre le menu quand la souris n'est plus dessus.
    Exact, bien sûr !
    Mon clavier a fourché

    Merci de la correction

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Par défaut
    Que veut dire "enlever le javascript dans le code des évènements ?
    J'ai essayé d'ajouter un effet onmouseout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <dl onmouseout="cache('smenu1');"> ?
    avec la définion de la fonction cache :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    window.onload=cache; 
    function cache(id) { 
    var d = document.getElementById(id); 
    for (var i = 1; i<=10; i++) {
     { 
    if (document.getElementById('smenu'+i)) 
    {document.getElementById('smenu'+i).style.display='none';} 
    } 
    if (d) {d.style.display='none';} 
    } 
    window.setTimeout("cache()",6000);
    Mais ça ne marche pas...
    Est-ce que c'est de cette façon qu'il faut faire ?
    Merci pour vos réponses !

Discussions similaires

  1. Menu déroulant afficher / masquer avec mouseover
    Par Invité dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 10/09/2009, 18h52
  2. Dimensions d'un Menu déroulant
    Par polo-j dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/02/2005, 14h26
  3. Menu déroulant valeur par défaut
    Par Gourouni dans le forum ASP
    Réponses: 11
    Dernier message: 06/12/2004, 16h31
  4. Menu déroulant suite au passage sur un TMenuItem
    Par James_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/05/2004, 14h31

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