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 avec temporisation avant ouverture


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut Menu déroulant avec temporisation avant ouverture
    Bonsoir à tous,

    Je cherche à réaliser un menu déroulant en javascript qui s'ouvre qu'après avoir laisser la souris dessus pendant 200ms.

    J'ai un problème de parent/enfant lors de la mise en place de la temporisation...

    Je vous montre deux scripts le premier ou le sous-menu s'ouvre directement(fonctionne) et le deuxième ou le sous-menu s'ouvre après 200ms :

    Ouverture direct (fonctionne):

    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
     
    <html>
     <head>
      <style>
       #menu { display: block; width: 100px; height: 30px; background: black; color: white; }
       #sous-menu { display: none; width: 100px; height: 100px; background: red; }  
      </style>
     </head>
    <body>
    <span id="menu">
     Menu
     <span id="sous-menu">
      sous-menu
     </span>
    </span>
     
    <script>
    document.getElementById("menu").onmouseover = openMenu ;
    document.getElementById("menu").onmouseout = closeMenu ;
     
    function openMenu()
    {
    document.getElementById("sous-menu").style.display = "block" ;
    }
     
    function closeMenu()
    {
    document.getElementById("sous-menu").style.display = "none" ;
    }
    </script>
    Ouverture temporisée (fonctionne pas):

    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
     
    <html>
     <head>
      <style>
       #menu { display: block; width: 100px; height: 30px; background: black; color: white; }
       #sous-menu { display: none; width: 100px; height: 100px; background: red; }  
      </style>
     </head>
    <body>
    <span id="menu">
     Menu
     <span id="sous-menu">
      sous-menu
     </span>
    </span>
     
    <script>
    document.getElementById("menu").onmouseover = openMenu ;
    document.getElementById("menu").onmouseout = closeMenu ;
     
    var timer = null ;
     
    function openMenu()
    {
    timer = setTimeout(goOpenMenu, 2000) ;
    }
     
    function goOpenMenu()
    {
    clearTimeout(timer) ;
    timer = null ;
    document.getElementById("sous-menu").style.display = "block" ;
    }
     
    function closeMenu()
    {
    document.getElementById("sous-menu").style.display = "none" ;
    }
    </script>
    J'ai volontairement mis à 2000ms afin de bien voir le comportement des fonctions.
    Merci à tous pour votre aide.

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    chez moi, ton script marche très bien;

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Oui, le sous-menu s'ouvre aussi avec le deuxième exemple fourni... qu'est-ce qui "ne marche pas" pour toi ?

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    j'ai juste mis un doctype et des balises de script correctes;

  5. #5
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par javatwister Voir le message
    j'ai juste mis un doctype et des balises de script correctes;
    ... et rajouté les /body et /html qui manquaient dans l'extrait ^^ on est d'accord... mais en tout cas le sous-menu s'ouvre bien

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    je note néanmoins un dysfonctionnement lorsque l'on glisse la mouse sur le sous menu ouvert, il y a disparition puis apparition.
    Il y a en fait une succession de mouveover/mouseout qui s'enchaîne.

Discussions similaires

  1. [MySQL] Menu déroulant avec données sql
    Par matt38 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/08/2012, 23h40
  2. menu déroulant avec conio
    Par lastrecrue dans le forum C
    Réponses: 9
    Dernier message: 01/07/2006, 14h14
  3. [PHP-JS] Menu déroulant avec proposition de login
    Par xender dans le forum Langage
    Réponses: 1
    Dernier message: 16/05/2006, 14h08
  4. [PHP-JS] besoin d'aide pour menu déroulant avec lien
    Par Damarus dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 18h43
  5. Menu déroulant avec préselection automatique
    Par Invité dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/06/2005, 12h11

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