【问题标题】:Animate Bootstrap Menu on Close关闭时为引导菜单设置动画
【发布时间】:2014-12-03 14:08:30
【问题描述】:

我已经设法让我的引导导航在打开时进行动画处理,但是如何在关闭时让它进行动画处理?

我正在尝试使用纯 CSS3 方式...主要是为了美观,所以我不担心它在旧浏览器中工作。

jsFiddle Link

HTML:

<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); 
    } 
}

【问题讨论】:

    标签: css twitter-bootstrap animation


    【解决方案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/

    【讨论】:

    • 谢谢,但我已经看过那个例子了。我试图弄清楚如何让它与关键帧一起工作,以便我可以在我提供的代码中使用动画序列......
    • 我认为您需要 transform: scale(1,0); 才能在 chrome 以外的浏览器中工作。
    猜你喜欢
    • 1970-01-01
    • 2015-07-16
    • 2016-03-05
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    相关资源
    最近更新 更多