martes, 23 de agosto de 2011

Menú vertical desplegable tipo acordeón con jQuery

Hace algún tiempo vimos cómo poner un menú vertical desplegable con jQuery, muy presentable, pero su diseño está enfocado más a mostrar contenido en vez de subpestañas. Contrario al que veremos ahora, el cual es un menú vertical desplegable con efecto deslizante que sí tiene subpestañas por lo que podremos agregar enlaces a cada sección del menú.
Tiene dos variantes, puede desplegarse al hacer click, o puede desplegarse al pasar el cursor sobre él.

Funciona al hacer clickFunciona al pasar el cursor

Lo primero que haremos será insertar el script en la plantilla, para ello entra en Plantilla | Edición de HTML y antes de </head> agrega lo siguiente:
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js' type='text/javascript'/>

<script type='text/javascript'>
//<![CDATA[
//------------------------------
// Developed by Roshan Bhattarai
// Visit http://roshanbh.com.np for this script and more.
// This notice MUST stay intact for legal use
// ---------------------------------
$(document).ready(function()
{
$("#firstpane p.menu_head").click(function()
{
$(this).css({backgroundImage:"url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdycVp3W0-1nfxtp0Nj2Kd8TXXfgnDmOi0oDFr5H-Cxr0sQbp1hLsCLVMbtfnDJ3ps84ZeTmgWgzavjSnjOAF-ugZq68fOZLg__h-JtiAMVhPEQSlFTtJVUPxW0WBHzeECAup0X9J0VPU/)"}).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
$(this).siblings().css({backgroundImage:"url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcPDMJpPXS2hctfSCam6sRB9rfqI6hhA730paIUUKjKjB6R06AAdDPFl0fC1ZbApRkMle8R6HT18z6rEoS3rhAZWka8mXiIlyj1Ur2tbxrXljTp42_D6Mve6Jwgmcf_oa2ij3lQ8zek-4/)"});
});


$("#secondpane p.menu_head").mouseover(function()
{
$(this).css({backgroundImage:"url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdycVp3W0-1nfxtp0Nj2Kd8TXXfgnDmOi0oDFr5H-Cxr0sQbp1hLsCLVMbtfnDJ3ps84ZeTmgWgzavjSnjOAF-ugZq68fOZLg__h-JtiAMVhPEQSlFTtJVUPxW0WBHzeECAup0X9J0VPU/)"}).next("div.menu_body").slideDown(500).siblings("div.menu_body").slideUp("slow");
$(this).siblings().css({backgroundImage:"url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcPDMJpPXS2hctfSCam6sRB9rfqI6hhA730paIUUKjKjB6R06AAdDPFl0fC1ZbApRkMle8R6HT18z6rEoS3rhAZWka8mXiIlyj1Ur2tbxrXljTp42_D6Mve6Jwgmcf_oa2ij3lQ8zek-4/)"});
});
});

//]]>
</script>
Ahora antes de ]]></b:skin> añade los estilos:
/* Menú vertical desplegable
----------------------------------------------- */
.menu_list {
width: 180px; /* Ancho del menú */
}
.menu_head {
padding: 5px 10px;
color:#848484; /* Color de las pestañas principales */
cursor: pointer;
position: relative;
margin:1px;
margin-left:0;
margin-right:0;
font-weight:bold;
background-color: #424242; /* Color de fondo */
background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcPDMJpPXS2hctfSCam6sRB9rfqI6hhA730paIUUKjKjB6R06AAdDPFl0fC1ZbApRkMle8R6HT18z6rEoS3rhAZWka8mXiIlyj1Ur2tbxrXljTp42_D6Mve6Jwgmcf_oa2ij3lQ8zek-4/);
background-position:center right;
background-repeat:no-repeat;
}
.menu_body {
display:none;
}
.menu_body a{
display:block;
color:#848484; /* Color de los enlaces */
background-color:#BDBDBD; /* Color de fondo de los enlaces */
padding-left:10px;
font-weight:bold;
text-decoration:none;
}
.menu_body a:hover{
color: #000000; /* Color de los enlaces al pasar el cursor */
text-decoration:underline;
}
Por último entra en Diseño | Añadir un gadget | HTML/Javascript, y ahí pega la estructura del menú.
Si quieres el que se activa al hacer click pega este código:
<div id="firstpane" class="menu_list">

<p class="menu_head">Pestaña 1</p>
<div class="menu_body">
<a href="URL del enlace">Sub pestaña 1</a>
<a href="URL del enlace">Sub pestaña 2</a>
<a href="URL del enlace">Sub pestaña 3</a>
</div>

<p class="menu_head">Pestaña 2</p>
<div class="menu_body">
<a href="URL del enlace">Sub pestaña 1</a>
<a href="URL del enlace">Sub pestaña 2</a>
<a href="URL del enlace">Sub pestaña 3</a>
</div>

<p class="menu_head">Pestaña 3</p>
<div class="menu_body">
<a href="URL del enlace">Sub pestaña 1</a>
<a href="URL del enlace">Sub pestaña 2</a>
<a href="URL del enlace">Sub pestaña 3</a>
</div>


</div>
Si quieres el que se activa al pasar el cursor entonces pega este código:
<div class="menu_list" id="secondpane">

<p class="menu_head">Pestaña 1</p>
<div class="menu_body">
<a href="URL del enlace">Sub pestaña 1</a>
<a href="URL del enlace">Sub pestaña 2</a>
<a href="URL del enlace">Sub pestaña 3</a>
</div>

<p class="menu_head">Pestaña 2</p>
<div class="menu_body">
<a href="URL del enlace">Sub pestaña 1</a>
<a href="URL del enlace">Sub pestaña 2</a>
<a href="URL del enlace">Sub pestaña 3</a>
</div>

<p class="menu_head">Pestaña 3</p>
<div class="menu_body">
<a href="URL del enlace">Sub pestaña 1</a>
<a href="URL del enlace">Sub pestaña 2</a>
<a href="URL del enlace">Sub pestaña 3</a>
</div>


</div>
Ya sólo cambia el nombre de las pestañas, de las subpestañas, y agrega las URLs de los enlaces donde se indica.

Si quieres agregar más subpestañas sólo añade debajo de la última subpestaña una línea como esta:
<a href="URL del enlace">Sub pestaña 3</a>
Y si quieres agregar otra pestaña con sus respectivas subpestañas agrega antes del último </div> un código como este:
<p class="menu_head">Pestaña 4</p>
<div class="menu_body">
<a href="URL del enlace">Sub pestaña 1</a>
<a href="URL del enlace">Sub pestaña 2</a>
<a href="URL del enlace">Sub pestaña 3</a>
</div>
Como siempre en color verde he puesto las anotaciones donde puedes personalizar el menú como es el color de fondo, el texto, etc.
Las flechas son unas imágenes, si quieres cambiarlas deberás cambiar las URLs de estas imágenes que se encuentran tanto en el primer como en el segundo código.

Es un menú sencillo pero con la facilidad de agrupar varios enlaces y además con esos efectos deslizantes que a todos gusta.

Vía | Roshan's blog

No hay comentarios:

Publicar un comentario