0

我正在制作一个不使用 JavaScript 的滑动导航栏。

一切都很好,除了一件事:当 div 到达最终位置(在关键帧的 100% 处)时,左侧 div 将顶部 div 推到文档底部。

我已经尝试过 position: absolute,但这无济于事。我尝试将 div 的宽度设置为 6% 并将顶部 div 的宽度设置为 94%,但是当用户缩小他或她的浏览器时,它会立即中断。

HTML:

<div id="left_bar"><p>This is sparta!</p></div>
<div class="top_bar">This is not Sparta!</div>

CSS:

/* LEFT SIDEBAR*/
#left_bar {
-webkit-animation:myFirst 3s; /* Safari and Chrome */
-webkit-animation-fill-mode: forwards;
font-size: .2px;
padding-left: 5px;
float: left
}


/* LEFT SIDEBAR ANIMATION*/
@-webkit-keyframes myFirst /* Safari and Chrome */{
    0% {
        background: orange;
        width: 6%;
        height: 0px;
        margin-top: 100%;
    }
    100% {
        background:orange;
        width: 6%;
        height: 100%;
        opacity: 0.7;
        font-size: 16px;
    }
}
/* TOP SIDEBAR*/
.top_bar {
background-color: black;
-webkit-animation:mySecond 3s;
-webkit-animation-fill-mode: forwards;
float: right;
}

/* TOP SIDEBAR ANIMATION*/
@-webkit-keyframes mySecond /* Safari and Chrome */{
    0% {
        background: orange;
        width: 0%;
        height: 8%;

    }
    100% {
        background:orange;
        width: 94%;
        height: 8%;
        opacity: 0.7;
    }
}

jsFiddle注意:jsFiddle 让它看起来完全不同。左侧边栏没有占据100%的高度,但是当顶部边栏占据页面的94%时,显示顶部栏跳到左侧边栏下方。

4

1 回答 1

1

问题是由于您拥有padding-left:5px;. #left_bar删除它,您的问题就解决了

另一种充分的解决方案是使用calc将其中一个的宽度缩短相同的量

@-webkit-keyframes mySecond {
    ...
    100% {
        width: calc(94% - 5px);
        ...
    }
}    

演示在这里

于 2013-11-08T15:50:07.153 回答