2010-04-10 65 views
2

我試圖做一個基本的下拉菜單與動畫和運行到問題,我似乎無法弄清楚如何保持下拉部分打開,直到鼠標樹葉。有沒有一種簡單的方法可以告訴它保持開放?我知道我對.clickme鼠標移出功能的完全錯誤,因爲它會相應地卸載菜單。jQuery的動畫鼠標懸停/ mouseout保持下拉菜單可見

如果任何人都可以在這個具體的例子中提供幫助,我會非常感激。

$(document).ready(function() { 

$('.clickme').mouseover(function() { 
    $('#slidebox').animate({ 
     top: '+=160' 
    }, 200, 'easeOutQuad'); 
}); 

$('.clickme').mouseout(function(){ 
    $('#slidebox').animate({ 
     top: '-=160' 
    }, 200, 'easeOutQuad') 
}); 

});

回答

1

這應該讓你去沒有任何標記的變化:

$('.clickme, #slidebox').hover(function() { 
    $('#slidebox').stop().animate({ top: '30px' }, 200, 'easeOutQuad'); 
}, function() { 
    $('#slidebox').stop().animate({ top: '-130px' }, 200, 'easeOutQuad'); 
}); 

因爲你的元素不是父/子關係,更容易把菜單上的絕對位置(其無論如何,在CSS中有130px),所以沒有理由不使用它具有絕對位置的事實。給它一個鏡頭,我測試你的網站,似乎是我想要在菜單中的行爲。

+0

謝謝尼克我會給這個鏡頭。 – 2010-04-10 00:56:47

+0

+1我的解決方案與您的解決方案非常接近,但它有一個令人討厭的bug ......您的工作確實很好:) – 2010-04-10 01:01:25

+0

理想情況下,我想在長期內將其改爲父/子方案嗎? – 2010-04-10 01:01:44

1

退房jQuery的hoverIntent

+0

我發佈這個哈哈後,我幾乎立即就讀到了hoverIntent。謝謝! – 2010-04-10 00:56:08

相關問題