sacas el float left de la lista, el tamaño de alto del div #efecto lo podés poner del mismo tamaño que el de las opciones asi ubicás el dibujo donde quieras para no tener que andar calculando entonces lo decis que se mueva a la posición top del li
Código Javascript
:
Ver original<html>
<head>
<title>Ejemplo</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
$( function(){
lista = $('#menu li');
lista.mouseover( function(){
mover($(this));
}).click( function(){
lista.removeClass('seleccionado');
$(this).addClass('seleccionado');
});
$('#menu ul').mouseleave( function(){
mover($('#menu li.seleccionado'));
});
$('#menu li.seleccionado').trigger('mouseover');
function mover(li){
var mover = li.offset().top;
$('#efecto').stop().animate({'top':mover}, 500);
}
});
</script>
<style>
body {
margin:50px
}
#menu{
background:#ccc;
width: 150px
}
#menu ul {
list-style:none;
margin:0;
padding:0;
}
#menu li {
padding:10px;
width:100px;
height: 50px;
text-align:center;
position:relative;
cursor:pointer;
}
#efecto {
position:absolute;
width:50px;
height:50px;
margin-left: 35px;
}
#menu .seleccionado{
font-weight:600
}
</style>
</head>
<body>
<div id="menu">
<div id="efecto">
<img src="http://www.gloriacalero.com/wp-content/uploads/2010/07/button-9458.png" />
</div>
<ul>
<li class="seleccionado">Uno</li>
<li>Dos</li>
<li>Tres</li>
<li>Cuatro</li>
</ul>
</div>
</body>
</html>
porqué no mejor usar el plugin que te pasó masterpuppet?
hay varios ejemplos
http://nixboxdesigns.com/projects/jq.../original.html