Partage
  • Partager sur Facebook
  • Partager sur Twitter

Menu qui apparait sur passage de souris.

Sujet résolu
    18 avril 2018 à 11:28:25

    Bonjour, je souhaite faire un menu personnalisable sur une image sur passage de souris. (pour le moment c'est sur un texte pour essayer de compendre la démarche)

    J'ai tenter ce genre de code, avec implémentation de listener :

    	var divPrint = document.createElement('div');
    	divPrint.id =  "divPrint";
    	divPrint.setAttribute('style',"display:none");
    	var newContentTxt = document.createTextNode("Affiche Menu"); 
    	divPrint.appendChild(newContentTxt);
    	
    	var divImg = document.createElement('div');
    	divImg.id = "divImg";
    	//divImg.setAttribute('style',"display:none");
    	var newContent = document.createTextNode("Hi there and greetings!"); 
    	divImg.appendChild(newContent);
    	
    	
    	var divMain = document.createElement('div');
    	divMain.id =  "DivMain";
    	var string = "affiche(" +  divPrint.id + ")";
    	divMain.setAttribute('onmouseover',string);
    	string = "cache(event," +  divPrint.id + ")";
    	divMain.setAttribute('onmouseout',string);
    	divMain.appendChild(divImg);
    	divMain.appendChild(divPrint);
    
    	div.appendChild(divMain);
    function affiche(id) {
    	  document.getElementById(id).style.display = '';
    	}
    	function cache(e,id) {
    	  var relTarg = e.relatedTarget || e.toElement;
    	  if(!isChildOf(relTarg,document.getElementById('conteneur'))) {
    	    document.getElementById(id).style.display = 'none';
    	  }
    	}
    	function isChildOf(child,par) {
    	  while(child!=document) {
    	    if(child==par) { return true; }
    	    child = child.parentNode;
    	  }
    	  return false;
    	}



    une contrainte forte, c'est que je n'ai accès qu'au JS.  d'où la création assez sale de balise HTML.

    Je dois avouer que je suis assez nul en JS :s

    Merci de votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2018 à 11:43:05

      Salut pour le coup je pense que tu devrais assigner un écouteur à la création de ton élément HTML qui dit être interactif

      voici un exemple :

      document.getElementById('id de ton element').addEventListener('mouseover',function (){
              //suite de ton code ....
          });

      Dans cette exemple au survole de l'element ton déclenchera l'action qui tu as définie. Pour la suite une simple selection d'enfant avec un changement de display comme tu as fait et c'est réglé.

      exemple :

      document.querySelectorAll('#id_element li');

      Dans cette exemple je sélectionne l'ensemble des li (enfants - selection par tag) de #id_element

      Pour ma part je partirais plus dans se sens là ;)

      • Partager sur Facebook
      • Partager sur Twitter

      Menu qui apparait sur passage de souris.

      × 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