Итак, у меня есть навигация, и я использую анимацию пользовательского интерфейса jQuery, чтобы сделать элемент списка скользящим вниз, изменить цвет и затем снова сдвинуться вверх, открывая кнопку другого цвета.
Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я наводю указатель мыши на элемент списка, событие наведения постоянно запускается до тех пор, пока мышь не уйдет.
Еще более странно то, что кажется, что событие mouseleave срабатывает сразу после события hover, независимо от того, покинула ли мышь элемент списка. Это происходит независимо от того, использовал ли я hover или mouseenter.
Вот что у меня есть:
HTML:
<nav>
<ul>
<a href="index.html"><li>Home</li></a>
<a href="services.html"><li>Services</li></a>
<a href="portfolio.html"><li>Portfolio</li></a>
<a href="contact.php"><li>Contact</li></a>
<a href="about.html"><li>About</li></a>
</ul>
</nav>
JQuery:
$("nav li").mouseenter(function(){
$(this).animate({bottom:"-50px"},"fast", function(){$(this).css('background','orange');$(this).css('color','#fff');});
$(this).animate({bottom:"-0px"},"fast");
}).mouseleave(function(){
$(this).animate({bottom:"-50px"},"fast", function(){$(this).css('background','white');$(this).css('color','#333');});
$(this).animate({bottom:"-0px"},"fast");
});
CSS:
nav{
float:right;
margin-top:91px;
}
nav ul, nav ul li{
display:inline;
}
nav li{
margin-left:10px;
position:relative;
padding:5px 20px;
color:#A29874;
background-color:#fff;
border-top-right-radius:5px;
border-top-left-radius:5px;
}
nav a{
position:relative;
text-decoration:none;
}
Я смогу добиться желаемого эффекта, если очень медленно наведу указатель мыши на один из элементов списка, всего несколько пикселей внутри. Эта задача, которая кажется относительно простой, сводит меня с ума.
Я проверил сеть и попробовал такие вещи, как открепление события mouseenter, используя условный запуск анимации только после того, как событие mouseleave сработало безрезультатно.
Буду очень признателен за любые предложения, желательно, прежде чем я буду лысым.
Спасибо!