Skip to content

利用keyframes实现加载动画

266字小于1分钟

CSSHTML

2022-4-19

CSS动画是CSS3的新特性,想用动画做一个简单的页面加载动画。
首先建一个盒子用于装四个小正方形,并用Grid布局让正方形2x2排列。因为要让四个正方形绕中心旋转,则给父元素加上旋转动画,为了让旋转之间有停顿,因此旋转从20再开始。
为了让四个正方形从中间分散,直接改变父元素grid-gap则可实现。最后给正方形在加上border-radius看起来就更加和谐了。

<div class="load_keyframes_body">
    <div class="load_keyframes_content">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
    </div>
</div>
.load_keyframes_body {
  flex-grow: 1;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.load_keyframes_content {
  grid-gap: 10px;
  display: grid;
  grid-template-columns: 50px 50px;
  grid-template-rows: 50px 50px;
  animation: load_transform 1s ease infinite;
}

.load_keyframes_content div {
  border-radius: 10px;
  background-color: #00bbff;
}

@keyframes load_transform {
  0% {
    grid-gap: 10px;
    transform: rotate(0deg);
  }
  30% {
    transform: rotate(0deg);
  }
  50% {
    grid-gap: 40px;
  }
  70% {
    transform: rotate(90deg);
  }
  100% {
    grid-gap: 10px;
    transform: rotate(90deg);
  }
}

img.png