2013-04-21 101 views
1

我對網站設計頗爲陌生,自從最近幾個小時以來我一直試圖解決這個問題,但無法找到任何解決方案。我正在嘗試製作一個下拉菜單。下面是HTML代碼..jQuery下拉菜單無法正常工作

<ul class="mainnav"> 
     <li><a href="#" class="navText"> <span class="navText"> Home </span> </a></li> 
     <li><a href="#" class="navText"><span class="navText"> Games </span></a> 
      <ul> 
       <li> Battlefield 3</li> 
       <li> Call Of Duty </li> 
       <li> Assiaisn's creed </li> 
      </ul> 
     </li> 
     <li><a href="#" class="navText"> <span class="navText"> Servers </span> </a></li> 
     <li><a href="#" class="navText"> <span class="navText"> Coming Soon </span> </a></li> 

</ul> 

和css就像是......

ul.mainnav{ 
    background:#f9f9f9; 
    font-size:25px; 
    margin:0; 
    padding:0; 
    height:50px; 
    display:inline-block; 
    min-width:200px; 
    list-style:none; 
    border-bottom:1px solid #ccc; 

} 

ul.mainnav > li{ 
    background:#f9f9f9; 
    height:50px; 
    float:left; 
    margin:0; 
    padding:0; 
} 
ul.mainnav > li a{ 
    font-family: 'Poiret One', cursive; 
    font-size:20px; 
    color:#333333; 
    text-decoration:none; 
    display:inline-block; 
    height:50px; 
    line-height:50px; 
    padding:0; 
    position:relative; 
    top:0px; 
    margin:0; 
    overflow:hidden 
} 
ul.mainnav > li a span.navText{ 
    height:50px; 
    padding:0px 15px 0px 15px; 
    display:block; 
    /*outline:1px dashed blue; */ 
} 
ul.mainnav > li a span.hiddenText{ 
    display:block; 
    line-height:50px; 
    height:50px; 
    color: red; 
    padding:0; 
    margin:0px; 
    /* outline:1px dashed green; */ 
} 

ul.mainnav > li ul{ 
    width:200px; 
    background:#CCCCCC; 
    font-family: 'Poiret One', cursive; 
    font-size:18px; 
    position:absolute; 
    margin:0px; 
    padding:0px; 
} 

ul.mainnav > li ul li{ 
    height:50px; 
    line-height:50px; 
    display:block; 
    clear:left; 
    float:left; 
    width: 200px; 
    margin:0; 
} 

和js就像..

$(document).ready(function() { 

$("span.navText").each(function(color) { 
     var text = $(this).text() 
     $(this).append('<br><span class="hiddenText">'+text+'</span>') 
    }); 


$('ul.mainnav li a').hover(
     function(){ 
      $(this).stop().children('span.navText').stop().animate({ 
       marginTop: '-50', 
      }, 250) 

     }, 
     function(){ 
      $(this).stop().children('span.navText').stop().animate({ 
       marginTop: '0', 
      }, 250) 
     } 

    ) 
}); 

現在的問題是子菜單是不定位正確。你可以在這裏看到... http://jsfiddle.net/yMUUN/

我想刪除主菜單和子菜單之間的小差距。

如果你能幫助我解決這個問題,那對我來說是非常有幫助的。提前致謝!

+0

其實,我很喜歡這種差距。您可以在子菜單上設置不透明度0,並在懸停設置不透明度1.這將導致很好的效果:) – 2013-04-21 14:15:58

回答

2

增加一條線,高度與下面的類固定的差距:

ul.mainnav > li{ 
    background:#f9f9f9; 
    height:50px; 
    float:left; 
    margin:0; 
    padding:0; 
     line-height: 10px; 
} 
+0

根本不工作! – 2013-04-21 14:15:33

+0

它爲我工作:http://jsfiddle.net/Kennethtruyers/yMUUN/2/ – Kenneth 2013-04-21 14:16:39

+0

@RohanDas,它的工作,冷靜下來。 http://jsfiddle.net/yMUUN/3/ – 2013-04-21 14:17:06