我的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/
答案 0 :(得分:1)
这是使用css转换和固定元素这样的已知问题。
看看这个答案'transform3d' not working with position: fixed children
快速修复将是这样翻译:
transform: translate(10rem,0,0);
虽然这样你就失去了滑动动画,只是得到了淡化。