Mi código HTML/CSS crea un menú circular que al pasar por los diferentes puntos agranda cada parte de ese menú. Después he utilizado JavaScript para mostrar los títulos en otra capa diferente.
Pues bien, al ser novato mi código JavaScript es tremendamente largo y estoy seguro de que puede hacerse de forma mucho más práctica. También me gustaría que mantuviese el título actual y que cambie cada vez que seleccionas otro menú. Este es mi código:
Script:
Código Javascript:
Ver original
function visible0(){ obj = document.getElementById("titulo0"); obj.style.display = "block"; } function ocultar0(){ obj = document.getElementById("titulo0"); obj.style.display = "none"; } function visible1(){ obj = document.getElementById("titulo1"); obj.style.display = "block"; } function ocultar1(){ obj = document.getElementById("titulo1"); obj.style.display = "none"; } function visible2(){ obj = document.getElementById("titulo2"); obj.style.display = "block"; } function ocultar2(){ obj = document.getElementById("titulo2"); obj.style.display = "none"; } function visible3(){ obj = document.getElementById("titulo3"); obj.style.display = "block"; } function ocultar3(){ obj = document.getElementById("titulo3"); obj.style.display = "none"; } function visible4(){ obj = document.getElementById("titulo4"); obj.style.display = "block"; } function ocultar4(){ obj = document.getElementById("titulo4"); obj.style.display = "none"; } function visible5(){ obj = document.getElementById("titulo5"); obj.style.display = "block"; } function ocultar5(){ obj = document.getElementById("titulo5"); obj.style.display = "none"; } function visible6(){ obj = document.getElementById("titulo6"); obj.style.display = "block"; } function ocultar6(){ obj = document.getElementById("titulo6"); obj.style.display = "none"; } function visible7(){ obj = document.getElementById("titulo7"); obj.style.display = "block"; } function ocultar7(){ obj = document.getElementById("titulo7"); obj.style.display = "none"; } function visible8(){ obj = document.getElementById("titulo8"); obj.style.display = "block"; } function ocultar8(){ obj = document.getElementById("titulo8"); obj.style.display = "none"; }
HTML:
Código HTML:
Ver original
<body> <div id="wrapper"> <div id="logo"> <img src="images/logo.png"> </div> <div class="nar" onmouseover="visible0()" onmouseout="ocultar0()"> </div> <div class="amari" onmouseover="visible1()" onmouseout="ocultar1()"> </div> <div class="rojo" onmouseover="visible2()" onmouseout="ocultar2()"> </div> <div class="azul" onmouseover="visible3()" onmouseout="ocultar3()"> </div> <div class="verde" onmouseover="visible4()" onmouseout="ocultar4()"> </div> <div class="amari2" onmouseover="visible5()" onmouseout="ocultar5()"> </div> <div class="lila" onmouseover="visible6()" onmouseout="ocultar6()"> </div> <div class="mor" onmouseover="visible7()" onmouseout="ocultar7()"> </div> <div class="rojo2" onmouseover="visible8()" onmouseout="ocultar8()"> </div> </div>
CSS:
Código CSS:
Ver original
/* WRAPPER */ #wrapper { width:1024px; margin:40px auto;} #logo img { width: 420px; height: 420px; margin-top: -210px; margin-left: -210px; left: 50%; top: 50%; position: absolute; } /* MANOS */ /* Naranja */ .nar { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: -222px; margin-left: -55px; left: 50%; top: 50%; } .nar a { display: block; height: 100%; width: 100%; background: none } .nar a:hover { background: url(../images/manos/nar.png) no-repeat center bottom; background-size: 130px 130px; } /* Amarillo */ .amari { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: -182px; margin-left: 38px; left: 50%; top: 50%; } .amari a { display: block; height: 100%; width: 100%; background: none } .amari a:hover { background: url(../images/manos/amari.png) no-repeat center bottom; background-size: 130px 130px; } /* Rojo */ .rojo { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: -87px; margin-left: 83px; left: 50%; top: 50%; } .rojo a { display: block; height: 100%; width: 100%; background: none } .rojo a:hover { background: url(../images/manos/rojo.png) no-repeat center bottom; background-size: 130px 130px; } /* Azul */ .azul { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: 18px; margin-left: 60px; left: 50%; top: 50%; } .azul a { display: block; height: 100%; width: 100%; background: none } .azul a:hover { background: url(../images/manos/azul.png) no-repeat center bottom; background-size: 130px 130px; } /* Verde */ .verde { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: 75px; margin-left: -28px; left: 50%; top: 50%; } .verde a { display: block; height: 100%; width: 100%; background: none } .verde a:hover { background: url(../images/manos/verde.png) no-repeat center bottom; background-size: 130px 130px; } /* Amarillo 2 */ .amari2 { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: 70px; margin-left: -132px; left: 50%; top: 50%; } .amari2 a { display: block; height: 100%; width: 100%; background: none } .amari2 a:hover { background: url(../images/manos/amari2.png) no-repeat center bottom; background-size: 130px 130px; } /* Lila */ .lila { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: -7px; margin-left: -205px; left: 50%; top: 50%; } .lila a { display: block; height: 100%; width: 100%; background: none } .lila a:hover { background: url(../images/manos/lila.png) no-repeat center bottom; background-size: 130px 130px; } /* Morado */ .mor { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: -108px; margin-left: -218px; left: 50%; top: 50%; } .mor a { display: block; height: 100%; width: 100%; background: none } .mor a:hover { background: url(../images/manos/mor.png) no-repeat center bottom; background-size: 130px 130px; } /* Rojo 2 */ .rojo2 { margin: 0px auto; position: absolute; width: 130px; height: 130px; margin-top: -192px; margin-left: -155px; left: 50%; top: 50%; } .rojo2 a { display: block; height: 100%; width: 100%; background: none } .rojo2 a:hover { background: url(../images/manos/rojo2.png) no-repeat center bottom; background-size: 130px 130px; } /* Titulos */ #titulo0, #titulo1, #titulo2, #titulo3, #titulo4, #titulo5, #titulo6, #titulo7, #titulo8 { background:none; position:absolute; display: block; text-decoration: none; margin: 0 0 30px 0; font: italic 45px Georgia, Times, Serif; text-align: center; color: #bfe1f1; text-shadow: 0px 2px 6px #333; width:100px; height:100px; top:50%; left:50%; margin-top:-270px; margin-left:-80px; display:none; }
No es un código muy complicado pero creo que ese script puede mejorarse mogollón y hacerlo mucho mas pequeño. Espero vuestros consejos y os agradezco de antemano la ayuda ;)