如何使用CSS制作凹入动画



所以,我有只显示其某些内容的侧边栏,当它徘徊时,它将显示所有侧边栏宽度。

.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>

相关内容

  • 没有找到相关文章

最新更新