2012-02-13 4 views
0

내 숨겨진 div가 멋지게 굴려서 나간다가 반동합니다.내 메뉴 항목을 입력 할 때 메뉴 항목이 한 번 안에 다시 실행되는 것을 방지합니다.

http://jsfiddle.net/NAyWQ/17/

그래서 난 노력하고있어 : 이미 다음 불행하게도 다시 화재를 맨 위로 메뉴 항목을 다시 입력 컨테이너 주위에 마우스를 가져 가면과 같이 아래로 다시 숨겨진 컨테이너를 슬라이드하는 경우 문제는 해야 할 일은 컨테이너가 계속 보이면 항목이 이미 표시되어 있는지 확인하는 테스트입니다. 어떤 도움이 크게 감사합니다

http://jsfiddle.net/NAyWQ/18/

: 그 얻을 수

가까운이 있습니다.

+0

당신이 그런 호버 상태 메뉴를 할 하시겠습니까 현재 호버 상태를 확인하는 플래그 변수를 사용하여? 그것은 터치 스크린에서 그렇게 잘 작동하지 않을 것입니다. –

+0

이 이미 여기에 대답했다 : http://stackoverflow.com/questions/2360209/cancel-all-queued-jquery-slideup-and-slidedown-animations –

+0

@DrewBaker. 그 점을 지적 해 주셔서 감사합니다. 나는 이것이 비 모바일 사용자를 주로 대상으로하는 사이트를위한 것이라고 생각합니다. 궁금한 점이 있다면, 좋은 추락은 무엇일까요? 모바일 장치인지 확인한 다음 드롭 다운을 클릭 할 수있게 만드시겠습니까? – lyndonr

답변

0

http://jsfiddle.net/DLFm3/1/

합니다. 또한 Hogan은 주 메뉴에 포함 된 드롭 다운 메뉴를 원할 경우 좋은 대답을주었습니다. 그렇지 않은 경우 애니메이션을 중지하려면 #dd_aboutstop(true, true) 전화를 추가했습니다. 여기

+0

아아 .. 당신은 css 변경 명령을 듣기 전에 이미 컨테이너에서 작동하는 기능을 중지해야합니다. 그게 내가 놓친 비트 야. 매우 감사합니다. – lyndonr

0

이 작동 :

http://jsfiddle.net/DLFm3/

HTML :

<div id="container"> 
    <div id="header"> 
     <div id="boundary"></div> 
     <div id="menu"> 
      <div id="about"> 
       <div id="dd_about"></div> 
      </div> 
     </div> 
    </div> 
</div>  

자바 스크립트

var menustate = "hidden"; 

$('#about').bind('mouseenter', function() {  

    if (menustate == "hidden") 
    { 
     $('#dd_about').slideDown('fast'); 
     menustate = "shown"; 
    } 
}); 


$('#about').bind('mouseleave', function() { 
     $('#dd_about').slideUp('fast'); 
    menustate = "hidden"; 
});​ 

CSS

#container { 
    width:500px; 
    margin:0 auto; 
    position:relative;  
} 

#header { 
    width:100%; 
    height:50px; 
    background:blue; 
    position:relative; 
} 

#boundary { 
    width:320px; 
    height:60px; 
    bottom:0; 
    right:0; 
    position:absolute; 
    background:purple; 

} 

#menu { 
    width:100px; 
    height:40px; 
    position:absolute; 
    right:10px; 
    top:10px; 
} 

#about { 
    width:100px; 
    height:40px; 
    float:left; 
    background:yellow; 

} 

#dd_about { 
    top : 40px; 
    left : 0px; 
    width:100px; 
    height:200px; 
    position:absolute; 
    background:red; 
    display:none; 
} 

#dd_about {right:10px} 
,363,210

이처럼 : 당신이 그것을 설치 여기 jsfiddle 확인해있는 방법을 해결하기 위해 자바 스크립트

$('#about').bind('mouseenter', function() {  

     $('#dd_about').slideDown('fast'); 
}); 


$('#about').bind('mouseleave', function() { 
     $('#dd_about').slideUp('fast'); 
});​ 


​ 
0

데모 http://jsfiddle.net/NAyWQ/21/

이 예제 노력은

var hover = false; 

$('#about').bind('mouseenter', function() {  
    hover = true; 
    $('#dd_about').slideDown('fast'); 
}); 

$('#boundary').bind('mouseenter', function() { 
    hover = false; 
    $('#dd_about').slideUp('fast'); 
}); 

$('#dd_about').bind('mouseleave', function() { 
    hover = false; 
    setTimeout(function() { 
     if (hover) return false; 
     $('#dd_about').slideUp('fast'); 
    }, 50); 
}); 
+0

@ dfsq에게 감사드립니다. 저는 처음에는 그런 해결책을 찾으려고했습니다. 잘 작동합니다. – lyndonr

관련 문제