JQuery анимированные кнопки, которые просто не ведут себя
Хорошо, у меня есть встроенный список кнопок.
<ul id="nav">
<li class="home"><a href="#">Menu Item</a></li>
<li class="contact"><a href="#">Menu Item</a></li>
<li class="about"><a href="#">Menu Item</a></li>
</ul>
.home{
position:absolute;
bottom:0;
background-image:url(../img/menu/single_line.png);
background-repeat:no-repeat;
height:34px;
width:134px;
}
.home_hover{
position:absolute;
bottom:0;
background-image:url(../img/menu/single_line_over.png);
background-repeat:no-repeat;
height:70px;
width:134px;
}
$(document).ready(function(){
$("#nav .home").mouseover(function(){
$(this).toggleClass("home_hover").slideToggle("slow");
return false;
}).mouseout(function(){
$(this).toggleClass("home_hover").slideToggle("slow");
return false;
});
});
У каждого пункта меню есть фоновое изображение, а затем при его наведении фоновое изображение заменяется более высоким изображением. В конечном счете, я пытаюсь создать простое меню, в котором при наведении курсора на пункт меню появляется, чтобы скользить вверх. Но в действительности Jquery может анимировать класс toggleClass с помощью slideToggle. Проблема в том, что этот текущий код не ведет себя правильно.
Он прыгает вверх и вниз, потому что текст движется. Я довольно новичок в Jquery, поэтому любая помощь очень ценится. Я также загрузил это в http://gasworks.ravennainteractive.com/result/
Спасибо
1 ответ
Решение
Попробуйте это ( демо):
CSS:
#header{
height:100px;
}
#nav{
height:34px;
position:relative;
}
.home{
position:absolute;
bottom:0;
background-image:url(http://gasworks.ravennainteractive.com/result/img/menu/single_line.png);
background-repeat:no-repeat;
height:34px;
width:134px;
}
.home_hover{
background-image:url(http://gasworks.ravennainteractive.com/result/img/menu/single_line_over.png);
}
скрипт
$(document).ready(function(){
$("#nav li").mouseover(function(){
$(this).addClass('home_hover').stop().animate({ height: '70px'},'slow');
}).mouseout(function(){
$(this).stop().animate({ height: '34px'},'slow', function(){
$(this).removeClass('home_hover');
})
});
});