2014-02-23 125 views
0

這很簡單,我確定但卻困擾着我。低了下去鏈路上徘徊時,我有下面的代碼滑動面板,我有問題是面板滑回下來,當我移動到它(因爲我已經移出了扳機)jQuery懸停顯示面板

$('#menu-item-245').hover(
    function() { 

     var captionHeight = $('.fullTimeSection').height(); 
     captionHeight = parseInt(captionHeight, 10); 
     var topHeight = 190 - captionHeight; 
     var topHeight =+ topHeight + 'px'; 

     $('.fullTimeSection').stop().animate(
     { 
      top: topHeight 

     }, 
     500 
     ); 
    }, 
    function() { 
     $('.fullTimeSection').animate(
     { 
      top: '190px' 

     }, 
     500 
     ); 
    } 
); 

HTML基本上是這樣的:

<div id="panelHolder"> 

    <div class="fullTimeSection"> 
     Slide panel content here... 
    </div> 

    </div> 

    <ul> 
    <li id="#menu-item-245"><a href="page.html">Page</a></li> 
    <li><a href="page.html">Page</a></li> 
    <li><a href="page.html">Page</a></li> 
    </ul> 

任何幫助真的很感激。

謝謝

+0

顯示你的HTML代碼,請。如果你在FIDDLE http://jsfiddle.net/上顯示你的問題會更好,(對你來說更舒適,以幫助我) – melvas

+0

嗨梅爾維斯,用HTML編輯的原創 – Geoff

+0

這裏是我的快速jsfiddle http://jsfiddle.net/QE67u/2/ – Geoff

回答

0

謝謝你的小提琴樣品。請參見下面的代碼來解決問題:

HTML:

<div id="wrapper"> 
    <div id="panelHolder"> 
     <div class="panel" id="fullTimeSection">Content 1!</div>  
     <div class="panel" id="sixthFormSection">Content 2!</div>  
     <div class="panel" id="partTimeSection">Content 3!</div> 
    </div>  

    <nav role="category-navigation" id="catNav"> 
     <ul id="menu-sections" class="section-menu"> 
      <li class="menu-item" data-id="fullTimeSection"><a href="#">Full Time</a></li> 
      <li class="menu-item" data-id="sixthFormSection"><a href="#">Sixth Form</a></li> 
      <li class="menu-item" data-id="partTimeSection"><a href="#">Part TIme</a></li> 
     </ul> 
    </nav>  
</div> 

CSS:

#wrapper {width:100%; padding:0; position:relative; height:250px; margin-top:250px;} 
#catNav ul {list-style-type:none; padding:0; margin:0;} 
#catNav li {width:100px; display:inline-block; border:1px solid red;} 

#panelHolder {position:absolute; top:-190px; width:100%; height:190px; overflow:hidden;} 

.panel{width:94%; height:170px; padding:10px 3%; color:white; position:absolute; top:190px;} 

.panel#fullTimeSection {background:#870057;} 
.panel#sixthFormSection {background:#232323;} 
.panel#partTimeSection { background:#555555;} 

JS:

$('.menu-item').hover(
    function() { 
     var panel = $('#' + $(this).data('id')); 
     var captionHeight = panel.height(); 
     captionHeight = parseInt(captionHeight, 10); 
     var topHeight = 190 - captionHeight; 
     var topHeight =+ topHeight + 'px'; 
     panel.stop().animate({ top: topHeight }, 500); 
    }, 
    function() { 
     $('#' + $(this).data('id')).animate({ top: '190px' }, 500); 
    } 
); 

和小提琴:

http://jsfiddle.net/QE67u/10/

我希望這是你想要什麼。

編輯

我想你可以牽住菜單面板,直到你不選擇其他菜單塊。請參見下面的示例代碼和小提琴,當然:

$('.menu-item').hover(
    function() { 
     $('.panel').animate({ top: '190px' }, 500); 

     var panel = $('#' + $(this).data('id')); 
     var captionHeight = panel.height(); 
     captionHeight = parseInt(captionHeight, 10); 
     var topHeight = 190 - captionHeight; 
     var topHeight =+ topHeight + 'px'; 
     panel.stop().animate({ top: topHeight }, 500); 
    } 
); 

http://jsfiddle.net/QE67u/14/

+0

嗨梅爾瓦斯,非常感謝您的幫助。是的,它幾乎在那裏,但我需要的最後一件事是,當用戶將光標放入其中時,滑動的面板保持不動,就像一個超大菜單,但也包含其他內容。我知道通常的做法是讓他們成爲每個李的一部分,這樣他們自然會保持,但我不能和他們分開。謝謝 – Geoff

+0

請參閱編輯答案請 – melvas

+0

嗨梅爾瓦斯,不幸的是工作,如果你有一個去,一旦你有任何塊滑了它不可能刪除它們,如果你移動到下一個只是保持打開狀態。無論是將光標從鏈接移開,還是將其從面板上移開,或將光標放在下一個鏈接項目上,都必須關閉。抱歉 – Geoff