Partage
  • Partager sur Facebook
  • Partager sur Twitter

evenement souris dans un div

    14 janvier 2009 à 19:13:21

    Bonjour à tous !
    Alors voila le soucis.
    J'ai un div avec deux événements :
    <div id="menu" onmouseover="test();" onmouseout="test2();">
    ...
    </div>
    

    avec le code :
    function test()
    {
    	var tAction1 = document.createTextNode('Action1');
    	var tAction2 = document.createTextNode('Action2');
    	var brAction12 = document.createElement('br');
    	var divMenu = document.createElement('div');
    	divMenu.setAttribute('id', 'home_menu');
    	divMenu.appendChild(tAction1);
    	divMenu.appendChild(brAction12);
    	divMenu.appendChild(tAction2);
    	document.getElementById('menu').appendChild(divMenu);
    };
    function test2()
    {
    	var suppr = document.getElementById('home_menu');
    	document.getElementById('menu').removeChild(suppr);
    }
    

    Avec ça, je voudrais que quand ma souris va sur mon div, cela ajoute du texte dans mon div.
    Ca marche nikel.
    Quand la souris quitte le div, je voudrais enlever le texte que j'ai ajouté, ca marche pas terrible :
    Le problème est que le texte que j'ajoute fait grandir mon div, j'ai vérifié cela avec firebug et je vois bien mon div qui s'agrandit vers le bas, mais l'événement onMouseOut est envoyé quand la souris sors de l'ancien div, sans prendre en compte la nouvelle taille de mon div.
    En clair, je vais essayé, mon div contient une image. Quand j'entre dans le div, sur l'image, le texte s'ajoute sous l'image du div, jusque là c'est ce que je veux, mais le texte disparaît non pas quand la souris sors du texte ajouté (la nouvelle taille du div), mais quand la souris quitte l'image (l'ancienne taille du div). Je me demande donc si ce comportement est normal si je vais donc devoir faire autrement, ou si ce problème vient d'un problème de conception.
    J'espère avoir été clair !
    Merci de votre aide !
    • Partager sur Facebook
    • Partager sur Twitter
      14 janvier 2009 à 19:27:09

      tu mets un onmouseover à ton menu et aux élément que tu crée qui met une variable à true...
      et un onmouseout qui la met false...
      et après tu mets un onmousemove sur le body qui, si la variable a pour valeur false, actionne la fonction test2()

      c'est ça que tu voulais? Je demande parce que j'ai pas lu entierement ton pavé...
      • Partager sur Facebook
      • Partager sur Twitter
        14 janvier 2009 à 20:24:17

        Je pense pas que sa change grand chose mais :
        Les événement sont bien sur menu mais le texte que tu ajoutes, lui, n'est pas dans un div enfant nommé home menu ?
        • Partager sur Facebook
        • Partager sur Twitter
          14 janvier 2009 à 21:20:55

          Salut vous deux et merci de votre aide !
          Le coup de la variable booléenne ca ne me plait pas trop
          Par contre, zoro-zero, effectivement mon texte est dans un div enfant de mon div menu, mais je pensais que le div qui avait la paternité, c'est à dire mon div menu, allait lancer les événements onMouseOut de son div fils (le div home_menu), je vais creuser par là merci beaucoup !
          Je vous tiens au courant.
          Merci !

          edit:
          Alors le problème est bien ça, quand la souris entre dans le div fils (home_menu) du div (home), le div home lève un événement onMouseOut. Je vais tenter de m'en sortir mais je crains que ce soit à base de variables globales... Si quelqu'un a une idée...
          Merci !

          edit:
          Ba finalement j'ai fait quelques tests et l'événement mouseOut n'est pas levé par un div quand la souris entre dans div fils... sauf dans mon cas...
          Alors je pense que le problème viendrait peut-être de la taille de mon div qui change après un évènement mouseOver...
          En gros je suis un peu perdu...
          Merci de votre aide !
          • Partager sur Facebook
          • Partager sur Twitter

          evenement souris dans un div

          × 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