Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/09/2011, 13:45
Avatar de IsaBelM
IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: menu de despliegue

no hay que escribir tanto y no se pierde nada de potencia. con esto prácticamente lo único que hay que hacer es agregar mas opciones al menú y editar el css a conveniencia

Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="application/xhtml; charset=utf-8" />
<title></title>
<style type="text/css">
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
position: relative;
}

#navigation > li:hover {
cursor:pointer;
border: 1px solid #eee;
}

#navigation li > ul {
display: none;
}
</style>
</head>
<body>
<div id="menu">
* * <ul id="navigation">
* * * * <li>Coches
* * * * * * <ul>
* * * * * * * * <li><a href="#">Seat</a></li>
* * * * * * * * <li><a href="#">Fiat</a></li>
* * * * * * * * <li><a href="#">Mercedes</a></li>
* * * * * * </ul>
* * * * </li>
* * * * <li>Motos
* * * * * * <ul>
* * * * * * * * <li><a href="#">Yamaha</a></li>
* * * * * * * * <li><a href="#">Honda</a></li>
* * * * * * * * <li><a href="#">JJ Cobas</a></li>
* * * * * * </ul>
* * * * </li>
* * * * <li>Bandas
* * * * * * <ul>
* * * * * * * * <li><a href="#">Extremoduro</a></li>
* * * * * * * * <li><a href="#">Barricada</a></li>
* * * * * * * * <li><a href="#">Ñu</a></li>
* * * * * * </ul>
* * * * </li>
* * * * <li>Redes Sociales
* * * * * * <ul>
* * * * * * * * <li><a href="#">Facebook</a></li>
* * * * * * * * <li><a href="#">Hi5</a></li>
* * * * * * * * <li><a href="#">Twitter</a></li>
* * * * * * </ul>
* * * * </li>
* * </ul>
</div>
<script type="text/javascript">
function addListener(element, type, expression, bubbling)
{
bubbling = bubbling || false;

if(window.addEventListener) {
element.addEventListener(type, expression, bubbling);
return true;
} else if(window.attachEvent) {
element.attachEvent('on' + type, expression);
return true;
} else return false;
}

elem = document.getElementById('menu').firstChild;
while(true){
switch(elem.nodeName){
case 'UL':
elem = elem.firstChild;
break;
case 'LI':
addListener(elem, 'click', function(e){
childElem = this.firstChild;


// <-- Evitar que cuando se pulse sobre los hijos (submenus) se cierren -->

var event = e || window.event;
if(!event.target){
event.target = event.srcElement;
}
if(this != event.target){
//alert(this + ' - ' + event.target)
return false;
}
// <-- Fin -->



while(true){
if(childElem.nodeName == 'UL'){
break;
}
* * * * * * *
childElem = childElem.nextSibling;
if(childElem == null){ break; }
}
if(childElem != null){
childElem.style.display = childElem.style.display == 'block' ? 'none' : 'block';
}
});
break;
}
elem = elem.nextSibling;
if(elem == null){ break; }
}
</script>
</body>
</html>