2009-05-19 7 views
3

У меня есть простой неупорядоченный список со списком элементами в качестве пункта меню я создал JQuery просто иметь забавный Эффект при наведении указателя существа:JQuery простого меню опрокидывание (без очереди анимации)

$('#nav ul ul li').hover(function(){ 
$(this).animate({ 
     marginLeft: "20px", 
     }, 300); 
}, function(){ 
$(this).animate({ 
     marginLeft: "0px", 
     }, 300); 
}); 

проблема с этим скриптом, если вы спешите по меню несколько раз, очередь анимации создается. Я пытался использовать .stop() между ними, но затем он также останавливает анимацию из других элементов списка, которые в любом случае должны вернуться в состояние по умолчанию. Есть ли способ остановить() очередь на элемент? но не для всего списка?

ответ

3

Я не понимаю, почему $ (это) .stop() .animate (...) не работает для вас, но вы также можете попробовать этот подход:

$(":not(:animated)", this).animate(...) 

, который будет только запускать анимацию на элементах, которые в настоящее время не анимированы

+1

где бы вы добавили stop(), то? , потому что то, что у меня есть с остановками, заключается в том, что если вы бросаетесь на весь список, то 10-й элемент, например, использует стоп, а затем анимирует свой путь до 20 пикселей вправо, но остановка помешала предыдущим элементам 1 - 9 вернуться в состояние по умолчанию , Осталось 20 пикселей. – Sander

+0

uuhm, Sander Я не уверен, что понимаю точный вопрос, который у вас есть, не могли бы вы разместить свой js/html в Интернете http://jsbin.com – duckyflip

+0

hm, я только сейчас понимаю свою ошибку Я добавил .stop () @ конец, после анимации. Я использовал его, как вы (раньше), и, похоже, работает нормально. благодаря да результат можно увидеть @ www.komtuveu.be (меню слева) , хотя это только простой HTML список ола с текстом, теперь я могу стиль и добавить изображение. благодаря – Sander