2012-05-09 2 views
1

내 탐색 막대에서 두 번 움직이는 jQuery 애니메이션에 문제가 있습니다. 마우스를 한 번 올리면 아래로 날아가서 다시 위로 움직입니다. 보이지 않을거야. 두 번 이상 마우스를 올리면 올바른 효과가 나타납니다. 다음은 탐색이 설정 방법은 다음과 같습니다jQuery 애니메이션 내비게이션

<div id="nav"> 
<ul> 
    <li><a href="en.about.html">About<img src="images/down_arrow.png" alt=""/></a> 
    <ul> 
     <li><a href="en.accreditations.html">Accreditations</a></li> 
     <li><a href="en.partnerships.html">Partnerships</a></li> 
     <li><a href="en.labs.html">Laboratories</a></li> 
     <li><a href="">Industries</a></li> 
     <li><a href="">Photo Gallery</a></li> 
    </ul> 
    </li> 
... 
</ul> 

SCRIPT :

<script type="text/javascript"> 
$('body').ready(function() { 
$('li').hover(function() { 
$(this).find('li').slideToggle(); 
}); 
}); 
</script> 
+0

당신이 – jacktheripper

+0

을 달성하려고하지 않습니다 어느 쪽도 우리는 당신의 JQuery와 애니메이션을 시각화 할 수 있는지 불분명하다 – Dhiraj

+1

Eran의 답변을 참조하십시오. 코드가 정확하지 않습니다. $ ('li')는 페이지의 모든 li을 포함하므로 이중 애니메이션이 표시됩니다. 당신이 메인 li에서 하나의 호버를 트리거하기 때문에 당신은 실제 nav 아이템 안의 li에서 언 로봇을 트리거합니다. 그래서 희망적으로 Eran의 대답은 올바른 방향으로 당신을 인도 할 것입니다 – Huangism

답변

1

<div id="nav" style="width:200px"> 
<ul style="border:1px solid red"> 
    <li class="topMenuItem"><a href="en.about.html">About<img src="images/down_arrow.png" alt=""/></a> 
    <ul style="display:none"> 
     <li><a href="en.accreditations.html">Accreditations</a></li> 
     <li><a href="en.partnerships.html">Partnerships</a></li> 
     <li><a href="en.labs.html">Laboratories</a></li> 
     <li><a href="">Industries</a></li> 
     <li><a href="">Photo Gallery</a></li> 
    </ul> 
    </li> 
</ul> 
</div> 

자바 스크립트 JSFiddle

HTML이 시도

$(document).ready(function(){ 
    $('.topMenuItem').mouseenter(function() { 
     $(this).find('ul').slideDown(); 
    }); 

    $('.topMenuItem').mouseleave(function(){ 
     $(this).find('ul').slideUp(); 
    }); 
​}); 
1

임이는 드롭 다운 메뉴입니다 가정?

목록 항목 만이 아니라 전체 목록을 슬라이드로 만들고 싶다고 가정합니다.

<script type="text/javascript"> 

    $(function() { 
     $('li').hover(function() { 
      $(this).find('ul').slideToggle(); 
     }); 
    }); 

</script> 

당신이 ... 밖으로 마우스

<script type="text/javascript"> 

    $(function() { 
     $('li').mouseenter(function() { 
      $(this).find('ul').slideDown(); 
     }).mouseleave(function(){ 
      $(this).find('ul').slideUp(); 
     }); 
    }); 

</script> 

또는 누가 알을 숨길을 원하는 경우 상점은, 내가 완전하게 될 질문을 읽는 놓칠 수 있습니다.

이 정보가 도움이되기를 바랍니다.

+0

2 번째는 멋지게 보입니다. 이것이 OP가 의미했던 것 같아요, JSFiddle의 작동 예제에 대한 제 대답을보십시오 –

+0

@Cameron, 예, 그것은 드롭 다운입니다. 코드가 작동하고 있습니다. 두 번 마우스를 올려 놓아서해야 할 것처럼 행동하는 것처럼 보입니다. 아마 li 또는 ul을 여러 번 사용하면 조금씩 뛰어 넘을 수 있다고 생각합니다. – Ben

+0

+1 잘 쓰여진 답변을 원한다면 SO –