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

HTML Discussion :

Onmouseover/out sur div avec IE8


Sujet :

HTML

  1. #1
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Points : 70
    Points
    70
    Par défaut Onmouseover/out sur div avec IE8
    Bonjour à tous,
    J'ai mis en place un petit menu déroulant super simple :
    un lien avec un onmouseover/out qui appelle une fonction pour afficher/cacher une div (mon déroulant) ... tout bête quoi !
    Voici le code, vous comprendrez mieux :
    d'abord le menu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <a href="nos-prestations.php" onmouseover="showhide('show');" onmouseout="showhide('hide');" class="liens_vide_blanc">
        <img src="images/puce_menu_blanc.png" alt="presta-on" id="presta" name="presta" border="0" /> NOS PRESTATIONS
        <div id="smenu" class="smenu" onmouseover="showhide('show');" onmouseout="showhide('hide');">
            <a href="nos-prestations-constructions-metalliques.php" class="lien_presta">Constructions m&eacute;talliques</a><br />
            <a href="nos-prestations-serrurrerie.php" class="lien_presta">Serrurrerie</a>
        </div>
    </a>
    ensuite le javascript showhide()
    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 showhide(option)
    {
        if(option == "show")
        {
            MM_swapImage('presta','','images/puce_menu_vert.png',1);
            document.getElementById('smenu').style.display = "block";
        }
        else
        {
            MM_swapImgRestore();
            document.getElementById('smenu').style.display = "none";
         }
    }
    enfin le CSS du sous-menu .smenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    .smenu
    {
    position: absolute;
    top: 28px;
    left: 0px;
    padding-left: 143px;
    width: 160px;
    display: none;
    z-index: 2;
    }
    J'ai fais exprès de faire en sorte que la div passe sur le lien texte pour que ce soit le onmouseout de la div qui déclenche le "caché" du menu.
    Cette technique fonctionne super bien sur FF mais pas sur IE (6, 7 et 8 ... je parle même plus du 5.5 !!!).
    Sur IE8, si je mets (comme c'est le cas) onmouseout="showhide('hide');" dans la balise <a> qui englobe le tout, dès que je sors du mot PRESTATIONS, le sous-menu disparait alors que je suis censé être sur la div et donc avoir déclenché l'apparition du sous-menu, donc il ne devrait pas disparaitre.
    Et si j'enlève le onmouseout="showhide('hide');" précédemment cité, ça ne disparait plus du tout, à moins de passer sur un des liens du sous-menu.
    En gros, IE réagit comme si le curseur n'était pas sur la div.
    Quelqu'un voit-il une erreur dans mon code ou une solution à mon problème svp ?
    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Points : 70
    Points
    70
    Par défaut
    Bon finalement j'ai trouvé une solution de bidouillage qui tue :
    j'ai mis un gif transparent de 1px par 1px en background de la div sous-menu, et maintenant c'est bien pris en compte par IE !
    Vive IE !

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

Discussions similaires

  1. Fade In/Fade Out avec div avec background Image
    Par Cdic83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/08/2008, 21h02
  2. [JS + CSS] Onmouseover sur div marche pas sur ie6
    Par NeedYourHelp dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 23/04/2008, 17h49
  3. Problème de superpostion de div avec z-index sur IE (6 et 7)
    Par Navyel dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/07/2007, 22h31
  4. Pb table dans div avec style sur le texte
    Par snoop dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/06/2006, 10h07
  5. Boucle sur chaque div avec class= ....
    Par zevince dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/04/2006, 12h12

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