2009-05-19 84 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 2009-05-19 12:47:39