2012-08-29 3 views
0

오픈 WordPress의 하위 메뉴를 유지나는이 같은 워드 프레스 메뉴가 몇 초

#top_menu ul li ul{ 
    z-index: 9999; 
    position: absolute; 
    left: -999em; 
    height: auto; 
    top:80px; 
    width:auto; 
    clear:both; 
    border:0; 
    border-top:none; 
} 
#top_menu ul li li { 
    margin:0px; 
    padding:0px; 
    background:none; 
    width:auto; 
} 

#top_menu ul li ul a { 
    width:auto; 
    line-height:26px; 
    font-size:16px; 
    display:block; 
    text-align:left; 
    text-shadow: none; 
} 
#top_menu ul li:hover ul ul, #top_menu ul li:hover ul ul ul, #top_menu ul li.sfhover ul ul, #top_menu ul li.sfhover ul ul ul { 
    left: -999em; 
} 
#top_menu ul li:hover ul, #top_menu ul li li:hover ul, #top_menu ul li li li:hover ul, #top_menu ul li.sfhover ul, #top_menu ul li li.sfhover ul, #top_menu ul li li li.sfhover ul { 
    left: auto; 
} 
#top_menu ul li:hover, #top_menu ul li.sfhover { 
    position: static; 
} 

현재 위치를 볼 수 있습니다 http://jsfiddle.net/JBXLr/1/

이제 foo를 사용하여 "moo"하위 메뉴로 이동하면 막대가 표시됩니다. 내 목표는 이제 마우스를 "moo"-link-out 영역 밖으로 이동시킨 후 2 초를 말하도록 서브 메뉴를 열어 두는 것입니다. 어떻게해야합니까?

어떤 도움을 주셔서 감사합니다.

+0

필요한 호환성은 무엇입니까? 예를 들어 CSS 전환은 작동하지만 모든 브라우저에서 호환되지는 않습니다. –

+0

은 작동하는 한 실제로 중요하지 않습니다;) jQuery는 가장 간단한 대답 인 것 같습니다. –

답변

1

사용하는 자바 스크립트 (jQuery를)는 하위 메뉴를 표시하고 CSS를 언급 한 이후이 게시가는 delay()

$('#top_menu li').hover(function(){ 
    $('.sub-menu', this).show(); 
}, function(){ 
    $('.sub-menu', this).delay(2000).hide(); 
}); 
+0

감사하지만 작동하지 않는 것 같습니다. - "display :"가 "block"에서 "none"으로 즉시 전환됩니다. –

+0

hide()를 fadeOut()으로 대체하려고합니다. – alexndm

+0

예. 그게, 고마워! –

0

적용합니다. http://jsfiddle.net/JBXLr/3/은 원하는 것을 얻기 위해 css3 전환을 사용합니다.

다음은 jquery와 현재 CSS를 사용하는 대체 자바 스크립트 솔루션입니다.

​​​​$("li").mouseout(function(){ 
    var uls =$(this).children("ul"); 
    uls.css("left","auto"); 
setTimeout(function(){ uls.css("left",""); }, 2000); 
});​​​ 
+0

위대한, 감사합니다! –