2010-07-20 47 views
0

我正在構建一個菜單控件,它由標題區域和包含鏈接的內容區域組成。試圖通過SlideDown繼續滑動div打開

我最初隱藏了內容區域,然後在將鼠標懸停在標題上時調用SlideDown,並在離開標題時調用SlideUp。我的問題是我想保持內容區域打開,如果你在它,以及。

<div id="header">Header</div> 
<div id="content">Content</div> 

$('#header').hover(FadeMenuIn, FadeMenuOut); 

function FadeMenuIn(ID) { 
    $('#content').stop(true, true).slideDown('slow'); 
} 

function FadeMenuOut(ID) { 
    $('#content').stop(true, true).slideUp('slow'); 
} 

我已經嘗試添加相同的處理程序#內容,但它仍然滑動內容,一旦我得到約20像素遠離頭部。

演示:here

+0

我的20像素問題是由於我以前沒有意識到的不同z-indexed div引起的。 – AndyMcKenna 2010-07-20 23:24:46

回答

2

你可以在這裏拉有點掛羊頭賣狗肉的一個.delay()調用,就像這樣:

$('#header, #content').hover(FadeMenuIn, FadeMenuOut); 

function FadeMenuIn(ID) { 
    $('#content').stop(true, true).slideDown('slow'); 
} 

function FadeMenuOut(ID) { 
    $('#content').stop(true, true).delay(10).slideUp('slow'); 
} 

See the updated demo here,我們正在做的是給稍有延遲到.slideUp()(它會在隊列中出現),但是當您進入#content元素時,您將清除該隊列,所以當時間到了時,什麼都不會滑落,除非您不在這兩個元素之外。