.mouseover()
и .mouseout()
дают странные результаты, потому что mouseover()
срабатывает более одного раза, пока ваша мышь все еще находится внутри элемента. Простое движение мыши вызовет его снова и снова.
.mouseenter()
и .mouseleave()
лучше, потому что они должны срабатывать только один раз при входе или выходе из элемента. Тем не менее, они все еще не функционируют так же хорошо, как .hover()
, который объединяет их в один метод.
Также добавление .stop()
остановит текущую анимацию перед началом новой. .stop(true, false)
очистит что-либо в очереди анимации и не позволит завершить текущую анимацию.
$('.controlNav li').hover(
function() {
$('.hover', this).css({ display: 'block' }).stop(true, false).animate({ top: -73, opacity: 1 }, 450, 'swing' );
},
function() {
$('.hover', this).css({ display: 'none' }).stop(true, false).animate({ top: -60, opacity: 0 });
});
http://api.jquery.com/hover/
http://api.jquery.com/stop/