По ссылкам, расположенным ниже, можно посмотреть пример того, что у нас должно получиться и скачать готовый код.
Начнем, как это всегда бывает, с HTML разметки. В ней все традиционно для меню - ненумерованный список:
<ul class="menu"> <li><a href="#">О сайте</a></li> <li><a href="#">Бизнес</a></li> <li><a href="#">Искусство</a></li> <li><a href="#">Живопись</a></li> <li><a href="#">Дизайн</a></li> <li><a href="#">Творчество</a></li> <li><a href="#">История</a></li> </ul>
Далее подключаем библиотеку (если она еще не подключена к сайту) и вставляем в js файл следующий небольшой код:
(function($){
$(function(){
var nav = $('.menu li a');
nav.each(function(){
$(this).append('<span>'+ $(this).html() +'</span>');
});
nav.hover(
function(){
$(this).stop().animate( {marginTop:'-33px'}, 400 );
},
function(){
$(this).animate( {marginTop:'0'}, 500 );
}
)
});
})(jQuery);}
Скрипт добавляет в каждый пункт меню элемент span в котором дублируется текст, прописанный в ссылке. При наведении ссылка смещается вверх а ее место занимает span. Больше ничего скрипт не делает.
И наконец приступим к самому трудоемкому процессу - оформлению. Оформить пункты меню можно по разному. Самый надежный в данном случае способ - использовать фоновые картинки (гарантировано одинаковое отображение и поведение в разных браузерах). Код css представлен ниже:
.menu{
margin:40px 0;
padding:0;
width:100%;
float:left;
font-family:Georgia;
}
.menu li{
height:32px;
float:left;
overflow:hidden;
}
.menu li a, .menu li a span {
padding:0 12px;
display:block;
line-height:33px;
color:#FFF;
text-transform:uppercase;
text-decoration:none;
font-size:12px;
}
.menu li a {
background:url(fon_link_nav.png) no-repeat top right;
}
.menu li:first-child {
border-left:1px solid #999;
}
.menu li a span {
margin:0 -12px;
background:url(fon_span_nav.png) no-repeat top right;
}
Если позволяет дизайн, то пункты навигации можно оформить с помощью, например, css3 (без использования картинок).
Ну и в заключении немного дегтя. К сожалению, не получинся сделать подобным методом многоуровневое меню из-за применения в li свойства overflow:hidden;.