2013-03-04 14 views
2

嘿傢伙我有問題指定我的JQuery SlideToggle行動到特定的標籤(文本框)目前它正在整個菜單中使用整個SlideToggle動作。當您懸停在一個菜單選項卡上時,我需要在每個菜單選項卡上的分隔線之間的綠色滑動框。需要幫助...jquery指定css框

http://jsfiddle.net/jfarr07/yKF65/1/

HTML

<div id="navigation"> 
<div class="panel"></div> 
    <ul id="nav"> 
     <li class="nav"><a href="#">HOME</a></li> 
     <li class="nav"><a href="#">OUR STORY</a></li> 
     <li class="nav"><a href="#">GALLERY</a></li> 
     <li class="nav"><a href="#">GIFT REGISTRY</a></li> 
    </ul> 
</div> 

CSS

body, html { 
padding:0; 
margin:0; 
background:url(../../Portfolio/images/wood2.png); 
} 
a:link { 
text-decoration:none; 
color:#000; 
font-family:open-sans, HelveticaNeue, Helvetica Neue Condensed Bold, Helvetica Neue, serif; 
} 
a:visited { 
color:#000; 
} 
a:hover { 
color:#FFF; 
} 
#navigation { 
width:auto; 
height:30px; 
background:rgba(0, 0, 0, .25); 
} 
ul#nav { 
display:inline; 
} 
li.nav { 
display:inline-block; 
margin: 0px 0px 0px 30px; 
padding:0px 0px 0px 30px; 
position:relative; 
} 
li~li { 
border-left: 1px solid #000000; 

} 
.panel { 
position:absolute; 
background:#0F3; 
background-size:100%; 
height:30px; 
display:none; 
width:100%; 
} 

JQuery的

<script> 
$(document).ready(function() { 
    $("li.nav").hover(function() { 
     $("#navigation").find(".panel").stop().slideToggle("fast"); 
    }, function() { 
     $("#navigation").find(".panel").stop().slideToggle("fast"); 
    }); 
}); 
</script> 

回答

0

試試下面

<script type="text/javascript"> 

    $(function() 
    { 
     $("li.nav").hover(function() 
     { 
      var x = $(this).offset().left; 
      var y = $(this).offset().top; 
      //var w = $(this).width(); 
      var totalWidth = $(this).width(); 
      totalWidth += parseInt($(this).css("padding-left"), 10) + parseInt($(this).css("padding-right"), 10); //Total Padding Width 
      totalWidth += parseInt($(this).css("margin-left"), 10) + parseInt($(this).css("margin-right"), 10); //Total Margin Width 
      totalWidth += parseInt($(this).css("borderLeftWidth"), 10) + parseInt($(this).css("borderRightWidth"), 10); //Total Border Width 
      var h = $(this).height(); 

      //$("#navigation").find(".panel").stop().slideToggle("fast"); 
      $("#navigation").find(".panel").animate({ 
       top: y, 
       left : x 
      }, 0).css({'width' : totalWidth, 
       'height' : h, 
       'position' : 'absolute'}).slideDown(50).css('display','block'); 

     }, function() { 
      $("#navigation").find(".panel").stop().slideUp("fast"); 
     }); 
    }); 

</script> 
<div id="navigation"> 
<div class="panel"></div> 
    <ul id="nav"> 
     <li class="nav"><a href="#">HOME</a></li> 
     <li class="nav"><a href="#">OUR STORY</a></li> 
     <li class="nav"><a href="#">GALLERY</a></li> 
     <li class="nav"><a href="#">GIFT REGISTRY</a></li> 
    </ul> 
</div> 
+0

它們基本上應該像原來一樣下降,但被分成標籤。不能從一個標籤水平浮動到下一個標籤。 – jash 2013-03-04 06:18:58

+0

@jash好吧我已經更新了我的答案看看... – 2013-03-04 06:25:09

+0

我相信它是更在CSS。當你從標籤跳轉到標籤現在快速他們不SlideToggle。它只是出現 – jash 2013-03-04 06:29:06