jquery-vertical-menuEn queness.com publicaron tutorial para crear con jQuery un vistoso menú vertical que tiene una flecha que flota hasta el elemento que se selecciona.

El ejemplo de este tutorial está disponible para descargar en un archivo ZIP que contine un demo funcional, los gráficos y las bibliotecas jQuery.

Resúmen de la implementación

Implementar este tipo de menú es muy simple, primero tenemos que enlazar las bibliotecas en la sección HEAD del HTML:

<script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>

Agregar el código Javascript que implementa el menú:

<script>
$(document).ready(function () {
//Set the height of the block
$('#menu .block').height($('#menu li').height());
//go to the default selected item
topval = $('#menu .selected').position()['top'];
$('#menu .block').stop().animate({top: topval}, {easing: '', duration:500});
$('#menu li').hover(
function() {
//get the top position
topval = $(this).position()['top'];
//animate the block
//you can add easing to it
$('#menu .block').stop().animate({top: topval}, {easing: '', duration:500});
//add the hover effect to menu item
$(this).addClass('hover');
},
function() {
//remove the hover effect
$(this).removeClass('hover');
}
);
});
</script>

Agregar los estilos visuales del menú:

<style>
#menu {
font-family:verdana;
font-size:12px;
position:relative;
margin:0 auto;
width:200px;
}
#menu ul {
/* remove list style */
list-style:none;
padding:0;
margin:0;
/* set the layer position */
position:relative;
z-index:5;
}
#menu li {
/* set the styles */
background:#ccc url(bg.gif) no-repeat 0 0;
padding:5px;
margin:2px;
cursor:pointer;
border:1px solid #ccc;
}
#menu li.hover {
/* on hover, change it to this image */
background-image:url(bg_hover.gif) !important;
}
#menu li a {
text-decoration:none;
color:#888;
}
#menu .block {
/* allow javascript to move the block */
position:absolute;
top:0;
/* set the left position */
left:150px;
/* display above the #menu */
z-index:10;
/* the image and the size */
background:transparent url(arrow.png) no-repeat top right;
width:39px;
padding:4px;
cursor:pointer;
}
/* fast png fix for ie6 */
* html .png{
position:relative;
behavior: expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none",
this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "', sizingMethod='image')",
this.src = "transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''),
this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "', sizingMethod='crop')",
this.runtimeStyle.backgroundImage = "none")),this.pngSet=true));
}
</style>

Ahora sólo nos queda el código HTML:

<div id="menu">
<ul>
	<li><a href="#">Item 01</a></li>
	<li><a href="#">Item 02</a></li>
	<li class="selected"><a href="#">Item 03</a></li>
	<li><a href="#">Item 04</a></li>
	<li><a href="#">Item 05</a></li>
	<li><a href="#">Item 05</a></li>
</ul>
<div class="block png"></div>
</div>

Clean and Attractive jQuery Vertical Menu Tutorial

Sitio: www.queness.com/post/710/clean-and-attractive-jquery-vertical-menu-tutorial

Por Diego Cambiaso

Comunicador Social, Desarrollador de Software y UX Designer. Blogger desde el 2006, creador de Pixelco Tech. Viajero y fotógrafo. Entusiasta del diseño, apasionado por la tecnología y el social media. EN-ES-IT