动画体破坏了bootstrap的固定导航

时间:2016-05-06 16:38:06

标签: html css twitter-bootstrap css-animations

我的bootstrap网页上有一个固定的导航栏。但是,一旦我为页面的body元素设置了动画,导航栏就会滚动显示页面。

我让身体动起来从右边“飞进来”。这是通过这个css完成的:

@keyframes body-anim {
    0% {
        transform: translate(10rem);
        opacity: 0;
    }
    25% {
        opacity: 0;
    }
}

body {
    animation-name: body-anim;
    animation-duration: 2s;
    animation-fill-mode: forwards;
    animation-timing-function: ease-in-out;
    overflow-x: hidden;
}

这个动画打破了我的固定顶部导航栏,如下所示:

<nav class="navbar navbar-default navbar-fixed-top">
    <div class="container">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#"><span class="col-brand">B</span>rand</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div id="navbar" class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li><a href="#">Example</a></li>
            </ul>
        </div>
        <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
</nav>

知道为什么吗?

JSFiddle:https://jsfiddle.net/DTcHh/20315/

1 个答案:

答案 0 :(得分:1)

这是使用css转换和固定元素这样的已知问题。
看看这个答案'transform3d' not working with position: fixed children

快速修复将是这样翻译:

transform: translate(10rem,0,0);

虽然这样你就失去了滑动动画,只是得到了淡化。