2014-12-02 6 views
1

열었을 때 내 부트 스트랩 탐색을 애니메이션으로 만들 수 있었지만 닫을 때 어떻게 애니메이션으로 만들 수 있습니까?닫기시 애니메이션 부트 스트랩 메뉴

나는 순수한 CSS3 방식으로 노력하고 있습니다 ... 그것은 주로 미학을위한 것이므로 오래된 브라우저에서 작동하는 것이 걱정되지 않습니다.

<nav class="navbar navbar-default navbar-static-top" role="navigation"> 
    <div class="container"> 
     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
      <ul class="nav navbar-nav"> 
       <li> 
        <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 
         Menu 1 
         <b class="caret"></b> 
        </a> 
        <ul class="dropdown-menu"> 
         <li><a href="#">Option 1</a></li> 
        </ul> 
       </li> 
       <li class="dropdown"> 
        <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 
         Menu 2 
         <b class="caret"></b> 
        </a> 
        <ul class="dropdown-menu"> 
         <li><a href="#">Option 2</a></li> 
        </ul> 
       </li> 
      </ul> 
     </div> 
    </div> 
</nav> 

CSS :

.open > .dropdown-menu { 
    -webkit-animation-name: bounce-in; 
} 

.dropdown-menu { 
    -webkit-animation-duration: .5s; 
    -webkit-animation-fill-mode: forwards; 
} 

@-webkit-keyframes bounce-in 
{ 
    0% { 
     opacity: 0; 
     -webkit-transform: scale(.3); 
    } 

    50% { 
     opacity: 1; 
     -webkit-transform: scale(1.05); 
    } 

    70% { 
     -webkit-transform: scale(.9); 
    } 

    100% { 
     -webkit-transform: scale(1); 
    } 
} 

@-webkit-keyframes bounceOut { 
    0% { 
     -webkit-transform: scale(1); 
    } 
    25% { 
     -webkit-transform: scale(.95); 
    } 
    50% { 
     opacity: 1; 
     -webkit-transform: scale(1.1); 
    } 
    100% { 
     opacity: 0; 
     -webkit-transform: scale(.3); 
    } 
} 

답변

1
.open > .dropdown-menu { 
    -webkit-transform: scale(1, 1); 
    transform: scale(1, 1); 
    opacity:1; 
} 

.dropdown-menu { 
    opacity:.3; 
    -webkit-transform-origin: top; 
    transform-origin: top; 
    -webkit-animation-fill-mode: forwards; 
    animation-fill-mode: forwards; 
    -webkit-transform: scale(1, 0); 
    display: block; 
    transition: all 0.2s linear; 
    -webkit-transition: all 0.2s linear; 
} 

http://jsfiddle.net/52VtD/9358/

+0

감사합니다,하지만 난 이미 본 적이 HTML

jsFiddle Link

그 예. 내가 제공하는 코드에서 애니메이션 시퀀스를 사용할 수 있도록 키 프레임과 함께 작동시키는 방법을 알아 내려고 노력 중입니다 ... – user1960364

+0

이 작업을 위해서는 transform : scale (1,0);이 필요하다고 생각합니다. 크롬 이외의 브라우저에서. –

관련 문제