Partage
  • Partager sur Facebook
  • Partager sur Twitter

Menu animé...

Sujet résolu
    6 octobre 2008 à 20:13:59

    Bonjours,
    J'ai un petit problème avec une menu déroulant en JavaScript trouvé sur jojoratonlaveur.fr.
    J'ai essayé de le personnaliser, au niveau css, aucun problème mais par contre au niveau JavaScript, ça coince.
    Le voici : Mon menu déroulant Js.
    Comme vous pouvez le voir, quand le lien "Les synthèses" est survolé, le menu s'affiche.
    Le problème est que lorsqu'on "sort" du menu, il reste ouvert, mais je n'arrive pas a la refermer lorsque la souris n'est plus dessus...

    jQuery().ready(function(){
    	$(".ascenseur").next("div").hide();
    	$(".ascenseur").mouseover(function(){
    									   
    		if($(this).next("div").is(":hidden")){
    			
    			$(".ascenseur").next("div:visible").slideUp();
    			
    			$(this).next("div").slideDown();
    			
    		}
    	});
    });
    

    <div id="navigation">
    
      <div class="bloc">
        <h4 class="ascenseur">Les synth&egrave;ses</h4>
      <div>
            <ul>
                <li align="left"><a href="#">  Mathematique</a></li>
                <li align="left"><a href="#">  Sciences </a></li>
                <li align="left"><a href="#">  Anglais</a></li>
                <li align="left"><a href="#">  Cecam</a></li>
                <li align="left"><a href="#">  N&eacute;erlandais</a></li>
                <li align="left"><a href="#">  Espagnol</a></li>
                <li align="left"><a href="#">  Latin</a></li>
                <li align="left"><a href="#">  Grec</a></li>
                <li align="left"><a href="#">  Histoire</a></li>
                <li align="left"><a href="#">  G&eacute;ographie</a></li>
                <li align="left"><a href="#">  Religion</a></li>
                <li align="left"><a href="#">  Informatique</a></li>
                <li align="left"><a href="#">  Comex</a></li>
            </ul>
            
    </div>
    


    Merci, à bientôt :)

    • Partager sur Facebook
    • Partager sur Twitter
      7 octobre 2008 à 13:15:06

      <!--
      var SPEED = 10;
      var DTIMER = 1;
      	function init(id,d) {
      		var menu = document.getElementById(id+'-2');
      		var menuheader = document.getElementById(id+'-1');
      		clearInterval(menu.timer);
      		if(d == 1)
      			{
      			clearTimeout(menuheader.timer2);
      			menu.style.display = 'block';
      
      			if(menu.maxh && (menu.maxh <= menu.offsetHeight)){return}
      			else if(!menu.maxh)
      				{
      				menu.style.height = 'auto';
      				menu.maxh = menu.offsetHeight;
      				menu.style.height = '0px';
      				}
      			menu.timer = setInterval(function() {agrandir(menu,1)},DTIMER);
      		    }
      	    else
      			{
      	        menuheader.timer2 = setTimeout(function(){sni(menu)},1);
      	        }
      	}
      	function sni(menu){
              menu.timer = setInterval(function(){agrandir(menu,-1)},DTIMER);
          }
      	function agrandir(menu,d) {
      		    if(d == 1)
      				{
      				var currh = menu.offsetHeight + (menu.offsetHeight * 0.3);
      				}
      			else
      				{
      				var currh = menu.offsetHeight - (menu.offsetHeight * 0.3);
      				}
      			if(currh >= menu.maxh)
      				{
      				currh = menu.maxh;
      				}
      		var dist;
      			if(d == 1)
      				{
      				dist = Math.round((menu.maxh - currh)/ SPEED);
      				}
      			else
      				{
      				dist = Math.round(currh / SPEED);
      				}
      			if(dist <= 1 && d == 1)
      				{
      				dist = 1;
      				}
      		menu.style.height = currh + (dist * d) + 'px';
      		menu.style.opacity = currh / menu.maxh;
      		menu.style.filter = 'alpha(opacity='+(currh*100/menu.maxh)+')';
      			if(currh > (menu.maxh - 2) && d == 1)
      				{
      				clearInterval(menu.timer);
      				}
      			else if(dist <= 1 && d != 1)
      				{
      			    menu.style.display = 'none';
      				clearInterval(menu.timer);
      			    }
      		
      	}
      //-->
      


      <div id="menu5-1" onmouseover="javascript:init('menu5',1);"  onmouseout="javascript:init('menu5',-1);" class="menu_margin_fixe">
      		<img src="images_test/bouton_off/bouton_off_menu5.png" class="image_menu" alt=""/>
      	    <div id="menu5-2">
      		ECRIT TRUCECRIT TRUC<br/>	ECRIT TRUC<br/>	ECRIT TRUC<br/>	ECRIT TRUC<br/>	ECRIT TRUC<br/>	ECRIT TRUC<br/>			
      	    </div>
      </div>
      >
      
      • Partager sur Facebook
      • Partager sur Twitter
        7 octobre 2008 à 13:31:52

        Merci beaucoup, ca marche à la perfection :) mais, juste une question, comment fait-on pour reglé la vitesse d'affichage de menu5-2 ?
        • Partager sur Facebook
        • Partager sur Twitter
          7 octobre 2008 à 19:53:57

          Sur ces deux lignes , la 1er ligne c'est pour la vitesse d'apparition (met un chiffre a la place de 0.3 entre 0.1 et 0.5 pour que ça ne speed pas a mort aussi ^^ car si tu met 2 , ça va être du instantané ,et ne met pas 0 , si tu veux mettre 0 ne met rien du tout laba , en gros enleve le "*0.3" ! ne met rien du tout lol) , même chose pour le deuxième
          if(d == 1)
          				{
          				var currh = menu.offsetHeight + (menu.offsetHeight * 0.3);
          				}
          			else
          				{
          				var currh = menu.offsetHeight - (menu.offsetHeight * 0.3);
          				}
          
          • Partager sur Facebook
          • Partager sur Twitter
            7 octobre 2008 à 20:35:43

            Encore un petite dernière, jamais 2 sans 3
            http://www.freesyntheses.be/autre/ -> c'est mon résultat final, mais le problème c'est que le menu est ouvert par défaut comment pourrais-je faire pour l'activé seulement lors d'un mouseover ? =)

            • Partager sur Facebook
            • Partager sur Twitter
              7 octobre 2008 à 22:10:32

              ha oui j'ai oublié le code css aussi ^^
              tu donne a tout tes menu qui finissent par -2 (menu1-2 , menu2-2 ...) la classe "menu_invisible" et tu met ça :
              tient :
              .menu_invisible{
              display : none;
              filter : alpha(opacity=0);
              opacity : 0;
              }
              
              • Partager sur Facebook
              • Partager sur Twitter

              Menu animé...

              × 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