css 简易 loading 加载图

使用 css 的 animation ,可以做一个转圈的 loading 图,省去了使用 gif 图的麻烦。

力求精简,以下 css 样式都是集成在一个类上,也就是说,只需要自定义一个元素,在上面加一个 class 样式就可以使用了

.loading{
    display: inline-block;
    height: 10px;
    width: 10px;
    border-radius: 50%;
    border: 2px solid #999;
    border-bottom-color: transparent;
    -webkit-animation: loading 0.75s linear infinite;
    animation: loading 0.75s linear infinite;
    // 位置相关
    margin: 6px;
    vertical-align: middle;
}
@-webkit-keyframes loading {
    0% { -webkit-transform: rotate(0deg); }
    50% { -webkit-transform: rotate(180deg); }
    100% { -webkit-transform: rotate(360deg); }
}
@keyframes loading {
    0% { -webkit-transform: rotate(0deg); }
    50% { -webkit-transform: rotate(180deg); }
    100% { -webkit-transform: rotate(360deg); }
}

如下:

或:

.dot{
      display: block;
      width: 32px;
      height: 32px;
      position: relative;

      margin: 10px auto;
    }
    .dot::before,.dot::after{
      content: '';
      display: block;
      width: 50%;
      height: 50%;
      border-radius: 50%;
      background: #98bff6;
      position: absolute;
      top: 50%;
      left: 50%;
    }
    .dot::before{
      opacity: 0.6;
      transform: scale(2);
      animation: bigDot 2s infinite;
    }
    .dot::after{
      opacity: 0.4;
      transform: scale(0.1);
      animation: smallDot 2s infinite;
    }
    @keyframes bigDot {
      0% { transform: scale(2) }
      50% { transform: scale(0) }
      100% { transform: scale(2) }
    }
    @keyframes smallDot {
      0% { transform: scale(0) }
      50% { transform: scale(2) }
      100% { transform: scale(0) }
    }

如下:

或:

 

.double{
  display: block;
  width: 30px;
  height: 30px;
  margin: 30px auto;
  position: relative;
}
.double::before,.double::after{
  content: '';
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #98bff6;
  position: absolute;
  top: 5px;
}
.double::before{
  left:0;
  animation: double_lt_position 2s infinite linear,double_lt_size 2s infinite linear;
}
.double::after{
  left:20px;
  animation: double_gt_position 2s infinite linear,double_gt_size 2s infinite linear;
}
@keyframes bg{
  0% {background:red}
  50% {background:yellow}
  100% {background:red}
}
@keyframes double_lt_position {
  50% {left:20px}
}
@keyframes double_lt_size {
  0% { transform: scale(1) }
  25% { transform: scale(0.5)  }
  50% { transform: scale(1) }
  75% { transform: scale(1.5)  }
  100% { transform: scale(1) }
}
@keyframes double_gt_position {
  50% {left: 0}
}
@keyframes double_gt_size {
  0% { transform: scale(1) }
  25% { transform: scale(1.5)  }
  50% { transform: scale(1) }
  75% { transform: scale(0.5)  }
  100% { transform: scale(1) }
}

 

如下:

或:

.double{
  display: block;
  width: 30px;
  height: 30px;
  margin: 30px auto;
  position: relative;
}
.double::before,.double::after{
  content: '';
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #98bff6;
  position: absolute;
  top: 5px;
  left: 15px;
}
.double::before{
  animation: double_lt 2s linear infinite;
}
.double::after{
  animation: double_gt 2s linear infinite;
}
@keyframes double_lt {
  0% { transform: scale(1) translate(-8px,0) }
  25% { transform: scale(0.5) translate(0,-7px) }
  50% { transform: scale(1) translate(8px,0) }
  75% { transform: scale(1.5) translate(0,2px) }
  100% { transform: scale(1) translate(-8px,0) }
}
@keyframes double_gt {
  0% { transform: scale(1) translate(8px,0) }
  25% { transform: scale(1.5) translate(0,2px) }
  50% { transform: scale(1) translate(-8px,0) }
  75% { transform: scale(0.5) translate(0,-7px) }
  100% { transform: scale(1) translate(8px,0) }
}

 

 如下:

 

 

 

 

-- end --

posted @ 2019-03-14 18:22  晨の风  阅读(2129)  评论(0编辑  收藏  举报