Partage
  • Partager sur Facebook
  • Partager sur Twitter

OnMouseOver : div se ferme

lors du survol du contenu (<p>,<li>, ...)

    3 août 2009 à 20:13:08

    Bonjour à tous et merci d'avance pour votre aide.

    Mon problème est le suivant :

    j'ai un "onMouseOver" qui change le contenu d'un div mais après le changement,
    MAIS quand la souris survole le div en question, et rencontre un élément (<p>,<li>, ...)
    il exécute le "onMouseOut" qui est destiner à remettre le div avec son contenu initial.

    :colere2: Et donc j'ai un effet instable (clignotant disgracieux)

    Merci pour votre aide

    Mon code CSS :
    #menu_A,#menu_B{float: left ; height:320px; width:224px; background-position:center top; background-repeat:no-repeat; }
    


    Mon code HTML qui affiche le DIV :
    <td id="menu_A" background="" width="25%" align="center"><a href="#" onMouseOver="menu_over('menu_A')" onMouseOut="menu_out('menu_A')">TEXTE_A</a></td>
    <td id="menu_B" background="" width="25%" align="center"><a href="#" onMouseOver="menu_over('menu_B')" onMouseOut="menu_out('menu_B')">TEXTE_B</a></td>
    


    Mon code HTML qui lance l'action :
    <!-- MENU_A-->
    <div id="menu_A" onMouseOver="menu_over('menu_A')" onMouseOut="menu_out('menu_A')"> </div>
    <!-- MENU_B-->
    <div id="menu_B" onMouseOver="menu_over('menu_B')" onMouseOut="menu_out('menu_B')"> </div>
    


    Et enfin le traitement en JS :
    function menu_over(info)
    {
        // CHANGE DU TEXTE DANS LE DIV
        ...
        ... ici du AJAX pour recup. le nouveau texte qui doit-être mis dans le DIV
        ... avec comme commande final la ligne ci-dessous
        document.getElementById(info).innerHTML  = http.responseText;
    }
    
    function menu_out(info)
    {
        // REMISE TEXTE ORIGINE DANS LE DIV
        ...
        ... ici du AJAX pour recup. le nouveau texte qui doit-être mis dans le DIV
        ... avec comme commande final la ligne ci-dessous
        document.getElementById(info).innerHTML  = http.responseText;
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      3 août 2009 à 20:23:10

      Euhh, de 1, c'est le forum CSS HTML ici, pas js.
      De 2 je ne comprend pas vraiment ce que tu racontes.
      Sans code, dur d'aider les gens !
      • Partager sur Facebook
      • Partager sur Twitter
        3 août 2009 à 20:35:02

        Oui j'ai hésiter pour la rubrique car j'utilise CSS et JS
        Mes bouts de codes y sont non ?

        Il y a simplement le contenu d'un DIV qui change avec du JS (onMouseOver) et un onMouseOut qui replace le contenu original.

        Le problème est qu'après l'action onMouseOver lorsque la souris survol le DIV (ayant reçu le nouveau contenu) et rencontre un élément (se trouvant dans le DIV tels que <p>, <li> )... il actionne le onMouseOut

        Plus clair là ? :lol:
        • Partager sur Facebook
        • Partager sur Twitter
          3 août 2009 à 22:15:46

          Hum c'est bizarre, on dirait presque que t'as mis un cancelBubble sur le mouseover des éléments a l'intérieur. Et quand bien meme, je crois meme pas que ca soit faisable.
          Si tu passe sur un élément qui est a l'intérieur d'un autre, ca déclenche le mouseover des deux a priori, et peut etre que du plus profond avec un cancelBubble mais a a vérifier.
          • Partager sur Facebook
          • Partager sur Twitter
            4 août 2009 à 1:42:56

            Comme ça je dirais onClick ?
            • Partager sur Facebook
            • Partager sur Twitter
              4 août 2009 à 11:08:18

              Merci pour l'idée du "onClick" mais il faut que mon DIV change même sans clic, simplement au survol :euh:

              Quelqu'un a une autre idée pour moi SVP ?
              • Partager sur Facebook
              • Partager sur Twitter
                4 août 2009 à 11:42:15

                Beuh, onmouseover, sur ton lien & sur le div qui s'affiche.
                • Partager sur Facebook
                • Partager sur Twitter
                  4 août 2009 à 11:53:02

                  @ hugotore :

                  Il y a déjà un onMouseOver sur le DIV.
                  Mais le problème justement est que le onMouseOver est activé (dès que la souris rencontre un elements contenu dans le DIV <p>, <li>, ...) avant même que la souris quitte le DIV :(
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 août 2009 à 11:57:34

                    Ben fais du onClick ^^ . C'est vraiment grave ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 août 2009 à 12:02:27

                      Je ne peux pas faire un onClick, car au fait c'est un DIV qui affiche un complément d'informations lorsque la souris passe sur une des rubriques de mon menu.
                      Avec ton idée, si il est activé avec le onClick, l'utilisateur ne va pas avoir l'occasion de voir le DIV car au clic il serait dirigé vers la rubrique en question :(
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 août 2009 à 14:44:24

                        Hum, sinon ca provient peut etre du fait que les éléments ne prennent pas de place dans ton divs.
                        Quand tu met certains éléments en float parfois, la hauteur du div ne le prend pas en compte.
                        Donc ca arrive d'etre sur un élément a l'intérieur du div sans être sur le div.
                        Mais une fois de plus, sans code, on peut pas trop t'aider la...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 août 2009 à 19:34:48

                          Je vois.
                          Fais ça avec du css ! :hover ;)
                          Si t'es ok je t'aide, sinon je vais pas bosser pour rien ^^ .
                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 août 2009 à 19:37:02

                            @ hugotore :

                            Bien entendu je veux bien ton aide, je te le demande même ;-)

                            Merci de me le proposer :D
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 août 2009 à 19:47:20

                              T'aura un site de support ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                4 août 2009 à 20:23:32

                                IE ne reconnaît pas les :hover sur autre chose que les liens, si je ne m'abuse.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 août 2009 à 0:03:22

                                  j'ai eu le même problème que toi.
                                  Ma solution : sur le onMouseOver, tu declanche un setTimeOut qui declanche la fermeture et sur le onMouseOver, tu fait un clearTimeOut si c'est déjà ouvert et tu ouvre si c'était fermé.

                                  Voila voila ^^
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    6 août 2009 à 7:07:52

                                    Alors là j'aurais jamais cru avoir le résultat voulu avec si peu de lignes de codes, sans bug, affichage 100% identique dans les différents navigateurs et sans JS !!!

                                    Tu es un AS Hugotore !!!

                                    Du coup, je vais pousser le bouchon plus loin et te demande une idée pour la suite .. voir MP
                                    hihihi merci ....
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      6 août 2009 à 10:51:35

                                      Pense à mettre ton sujet en résolu à l'aide du lien en bas de page ;)
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      OnMouseOver : div se ferme

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown