2013-03-04 5 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

+0

@jash okay Я обновил свой ответ, посмотрю ... –

+0

Я верю, что это больше в css. Когда вы переходите с вкладки на вкладку сейчас быстро, они не имеют функции SlideToggle. Просто появляется – jash

Смежные вопросы