所以,我有只显示其某些内容的侧边栏,当它徘徊时,它将显示所有侧边栏宽度。
.sidenav {
height: 100%;
width: 100px;
position: fixed;
z-index: 2;
top: 0;
left: 0;
background-color: #fff;
overflow: hidden;
padding-top: 20px;
transition: 0.8s;
opacity: 0.8;
box-shadow: 0px 20px 50px black;
border-radius: 0;
background: black;
}
.sidenav:hover {
width: 215px;
overflow: hidden;
animation-name: roundborder;
animation-duration: 1s;
animation-iteration-count: 1;
}
@keyframes roundborder {
0% { border-radius: 0; }
50% { border-radius: 0 50% 50% 0; }
100% { border-radius: 0; }
}
<div class="sidenav"></div>
我的问题是,如果侧边栏不是悬停的,如何制作凹入动画?因此,在徘徊并且指针不在侧边栏中,它将回到初始状态,但使用凹形动画,我不能使用负百分比,那么我该用它使用什么?谢谢
我想您必须与 svg 创建一个普通的正方形,然后是两个
动画第一个在圆角时,第二个是
凹角。
也许我正在误解这个问题,但是您不仅可以将相同的动画放在DIV上(没有:悬停)。这样:
.sidenav {
height: 100%;
width: 100px;
position: fixed;
z-index: 2;
top: 0;
left: 0;
background-color: #fff;
overflow: hidden;
padding-top: 20px;
transition: 0.8s;
opacity: 0.8;
box-shadow: 0px 20px 50px black;
border-radius: 0;
background: black;
animation-name: roundborder2;
animation-duration: 1s;
animation-iteration-count: 1;
}
.sidenav:hover {
width: 215px;
overflow: hidden;
animation-name: roundborder;
animation-duration: 1s;
animation-iteration-count: 1;
}
@keyframes roundborder {
0% { border-radius: 0; }
50% { border-radius: 0 50% 50% 0; }
100% { border-radius: 0; }
}
@keyframes roundborder2 {
0% { border-radius: 0; }
50% { border-radius: 0 50% 50% 0; }
100% { border-radius: 0; }
}
<div class="sidenav"></div>