Este codigo es un menu de 3 niveles.
Mi código funciona muy bien: el segundo nivel despliega y oculta al tercer nivel perfectamente, el único problema es que cuando despliego el tercer y ultimo nivel los datos del segundo nivel se bajan automáticamente al tercero.
Aqui el código javascript:
Código HTML:
<script> startList = function() { if (document.all&&document.getElementById) { navRoot = document.getElementById("nav"); for (i=0; i<navRoot.childNodes.length; i++) { node = navRoot.childNodes[i]; if (node.nodeName=="LI") { node.onmouseover=function() { this.className+=" over"; } node.onmouseout=function() { this.className=this.className.replace (" over", ""); } } } } } window.onload=startList; </script> <script> $( document ).ready(function() { jQuery(".flotado").bind("click", function () { jQuery(this).next().slideToggle(); }); }); </script>
Código HTML:
#divNav { background: transparent url(bk-nav.jpg) no-repeat top left; margin: 0; padding: 0; height: 80px; width: 800px; } #nav { position: relative; top: 55px; height: 80px; width: 800px; } #nav li ul, #nav li ul { margin: 0; padding: 0; } #nav a { text-decoration: none; } #nav li { /*float the main list items*/ margin: 0; float: left; display: block; padding-right: 15px; } #nav li ul { display: none; } #nav li.off ul, #nav li.on ul { /*put the subnav below*/ position: absolute; top: 25px; left: 0; padding-top: 15px; background: black; height: 28px; width: 740px; padding-left: 60px; } #nav li.on ul { background: #f90; } #nav li.on:hover ul, #nav li.over ul { /*for ie*/ background: black; } #nav li a { color: black; display: block; width: 93px; padding: 0; } #nav li.on a { color: #f90; } #nav li.on ul a, #nav li.off ul a { border: 0; float: left; /*ie doesn't inherit the float*/ color: #f90; width: auto; margin-right: 15px; } #nav li.on:hover ul a, #nav li.over ul li a { /*for ie - the specificity is necessary*/ background: black; } #nav li.on ul { display: block; } #nav li.off:hover ul, #nav li.over ul { display: block; z-index: 6000; } #nav li.off a:hover, #nav li.on a:hover { color: #f90; } /*do the image replacement*/ #nav li span { position: absolute; left: 20px; } #liRenaissance a, #liArtNouveau a, #liModern a, #liPostModern a, #liDigital a { display: block; position: relative; height: 26px; } #nav li.off ul a, #nav li.on ul a { display: block; background: black; color: #fff; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; } #nav li.on ul a { background: #f90; } .dropdowncol {position:absolute; left:-999em; background:#F4F4F4; margin:4px auto; text-align:left; padding:0px 5px 10px 5px; border:1px solid #777777; border-top:none; width: 850px; background-color: black;} #nav li#liRenaissance ul li:hover .dropdowncol { left:-1px;top:30px; } div.flotado {float: left; width: 20px; } .hide{color: white; display: none; border: 1px solid red; } .hide a {}
Código HTML:
<div id="divNav"> <ul id="nav"> <li>Inicio</li> <li id="liRenaissance" class="off"><a href="#"><span>Catalogo</span></a> <ul> <li><a href="#">Mujer</a> <div class="dropdowncol"> <div class="flotado" > <a class="primera" href="#" >A</a> </div> <div class="hide"> <a href="#">Adidas</a><a href="#">Alyssa Ashley</a><a href="#" > Animale</a><a href="#" > Armani</a> </div> <div class="flotado" > <a href="#" >B</a> </div> <div class="hide" > <a href="#" >Bebe</a> <a href="#" > Benetton</a> <a href="#" > Beverly Hills</a> <a href="#" > Britney Spears</a> <a href="#" > Burberry</a> <a href="#" > Bvulgari</a> </div> </div> </li> <li><a href="#">Hombre</a></li> <li><a href="#">Unisex</a></li> <li><a href="#">Bebe</a></li> </ul></li> <li>Ventas</li> <li>Contacto</li> </ul></div>
Salu2.