【css | loading】各种简单的loading特效

news2024/11/25 21:44:42

先看一下简单的效果图

 线上预览

https://code.juejin.cn/pen/7278511766991339579

代码

HTML

 <!-- / 1 -->
    <section>
      <div class="sk-rotating-plane"></div>
    </section>
    <!-- / 2 -->
    <section>
      <div class="sk-double-bounce">
        <div class="sk-child sk-double-bounce-1"></div>
        <div class="sk-child sk-double-bounce-2"></div>
      </div>
    </section>
    <!-- / 3 -->
    <section>
      <div class="sk-wave">
        <div class="sk-rect sk-rect-1"></div>
        <div class="sk-rect sk-rect-2"></div>
        <div class="sk-rect sk-rect-3"></div>
        <div class="sk-rect sk-rect-4"></div>
        <div class="sk-rect sk-rect-5"></div>
      </div>
    </section>
    <!-- / 4 -->
    <section>
      <div class="sk-wandering-cubes">
        <div class="sk-cube sk-cube-1"></div>
        <div class="sk-cube sk-cube-2"></div>
      </div>
    </section>
    <!-- / 5 -->
    <section>
      <div class="sk-spinner sk-spinner-pulse"></div>
    </section>
    <!-- / 6 -->
    <section>
      <div class="sk-chasing-dots">
        <div class="sk-child sk-dot-1"></div>
        <div class="sk-child sk-dot-2"></div>
      </div>
    </section>
    <!-- / 7 -->
    <section>
      <div class="sk-three-bounce">
        <div class="sk-bounce-1 sk-child"></div>
        <div class="sk-bounce-2 sk-child"></div>
        <div class="sk-bounce-3 sk-child"></div>
      </div>
    </section>
    <!-- / 8 -->
    <section>
      <div class="sk-circle-bounce">
        <div class="sk-child sk-circle-1"></div>
        <div class="sk-child sk-circle-2"></div>
        <div class="sk-child sk-circle-3"></div>
        <div class="sk-child sk-circle-4"></div>
        <div class="sk-child sk-circle-5"></div>
        <div class="sk-child sk-circle-6"></div>
        <div class="sk-child sk-circle-7"></div>
        <div class="sk-child sk-circle-8"></div>
        <div class="sk-child sk-circle-9"></div>
        <div class="sk-child sk-circle-10"></div>
        <div class="sk-child sk-circle-11"></div>
        <div class="sk-child sk-circle-12"></div>
      </div>
    </section>
    <!-- / 9 -->
    <section>
      <div class="sk-cube-grid">
        <div class="sk-cube sk-cube-1"></div>
        <div class="sk-cube sk-cube-2"></div>
        <div class="sk-cube sk-cube-3"></div>
        <div class="sk-cube sk-cube-4"></div>
        <div class="sk-cube sk-cube-5"></div>
        <div class="sk-cube sk-cube-6"></div>
        <div class="sk-cube sk-cube-7"></div>
        <div class="sk-cube sk-cube-8"></div>
        <div class="sk-cube sk-cube-9"></div>
      </div>
    </section>
    <!-- / 10 -->
    <section>
      <div class="sk-fading-circle">
        <div class="sk-circle sk-circle-1"></div>
        <div class="sk-circle sk-circle-2"></div>
        <div class="sk-circle sk-circle-3"></div>
        <div class="sk-circle sk-circle-4"></div>
        <div class="sk-circle sk-circle-5"></div>
        <div class="sk-circle sk-circle-6"></div>
        <div class="sk-circle sk-circle-7"></div>
        <div class="sk-circle sk-circle-8"></div>
        <div class="sk-circle sk-circle-9"></div>
        <div class="sk-circle sk-circle-10"></div>
        <div class="sk-circle sk-circle-11"></div>
        <div class="sk-circle sk-circle-12"></div>
      </div>
    </section>
    <!-- / 11 -->
    <section>
      <div class="sk-folding-cube">
        <div class="sk-cube sk-cube-1"></div>
        <div class="sk-cube sk-cube-2"></div>
        <div class="sk-cube sk-cube-4"></div>
        <div class="sk-cube sk-cube-3"></div>
      </div>
    </section>
    <section></section>

 css

 body {
    background-color: rgba(0, 0, 0, 0.9);
    min-height: 95vh;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-content: space-around;
  }

  section {
    flex: 1 1 25%;
  }

  .sk-rotating-plane {
    width: 4em;
    height: 4em;
    margin: auto;
    background-color: #337ab7;
    -webkit-animation: sk-rotating-plane 1.2s infinite ease-in-out;
    animation: sk-rotating-plane 1.2s infinite ease-in-out;
  }

  @-webkit-keyframes sk-rotating-plane {
    0% {
      -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
      transform: perspective(120px) rotateX(0deg) rotateY(0deg);
    }
    50% {
      -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
      transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
    }
    100% {
      -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
      transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
    }
  }

  @keyframes sk-rotating-plane {
    0% {
      -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
      transform: perspective(120px) rotateX(0deg) rotateY(0deg);
    }
    50% {
      -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
      transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
    }
    100% {
      -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
      transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
    }
  }
  .sk-double-bounce {
    width: 4em;
    height: 4em;
    position: relative;
    margin: auto;
  }
  .sk-double-bounce .sk-child {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: #337ab7;
    opacity: 0.6;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-animation: sk-double-bounce 2s infinite ease-in-out;
    animation: sk-double-bounce 2s infinite ease-in-out;
  }
  .sk-double-bounce .sk-double-bounce-2 {
    -webkit-animation-delay: -1s;
    animation-delay: -1s;
  }

  @-webkit-keyframes sk-double-bounce {
    0%,
    100% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    50% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }

  @keyframes sk-double-bounce {
    0%,
    100% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    50% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }
  .sk-wave {
    width: 6em;
    height: 4em;
    margin: auto;
    text-align: center;
    font-size: 1em;
  }
  .sk-wave .sk-rect {
    background-color: #337ab7;
    height: 100%;
    width: 0.5em;
    display: inline-block;
    -webkit-animation: sk-wave-stretch-delay 1.2s infinite ease-in-out;
    animation: sk-wave-stretch-delay 1.2s infinite ease-in-out;
  }
  .sk-wave .sk-rect-1 {
    -webkit-animation-delay: -1.2s;
    animation-delay: -1.2s;
  }
  .sk-wave .sk-rect-2 {
    -webkit-animation-delay: -1.1s;
    animation-delay: -1.1s;
  }
  .sk-wave .sk-rect-3 {
    -webkit-animation-delay: -1s;
    animation-delay: -1s;
  }
  .sk-wave .sk-rect-4 {
    -webkit-animation-delay: -0.9s;
    animation-delay: -0.9s;
  }
  .sk-wave .sk-rect-5 {
    -webkit-animation-delay: -0.8s;
    animation-delay: -0.8s;
  }

  @-webkit-keyframes sk-wave-stretch-delay {
    0%,
    40%,
    100% {
      -webkit-transform: scaleY(0.4);
      transform: scaleY(0.4);
    }
    20% {
      -webkit-transform: scaleY(1);
      transform: scaleY(1);
    }
  }

  @keyframes sk-wave-stretch-delay {
    0%,
    40%,
    100% {
      -webkit-transform: scaleY(0.4);
      transform: scaleY(0.4);
    }
    20% {
      -webkit-transform: scaleY(1);
      transform: scaleY(1);
    }
  }
  .sk-wandering-cubes {
    width: 4em;
    height: 4em;
    position: relative;
    margin: auto;
  }
  .sk-wandering-cubes .sk-cube {
    background-color: #337ab7;
    width: 1em;
    height: 1em;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-animation: sk-wandering-cubes 1.8s ease-in-out -1.8s infinite both;
    animation: sk-wandering-cubes 1.8s ease-in-out -1.8s infinite both;
  }
  .sk-wandering-cubes .sk-cube-2 {
    -webkit-animation-delay: -0.9s;
    animation-delay: -0.9s;
  }

  @-webkit-keyframes sk-wandering-cubes {
    0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
    }
    25% {
      -webkit-transform: translateX(2em) rotate(-90deg) scale(0.5);
      transform: translateX(2em) rotate(-90deg) scale(0.5);
    }
    50% {
      /* Hack to make FF rotate in the right direction */
      -webkit-transform: translateX(2em) translateY(2em) rotate(-179deg);
      transform: translateX(2em) translateY(2em) rotate(-179deg);
    }
    50.1% {
      -webkit-transform: translateX(2em) translateY(2em) rotate(-180deg);
      transform: translateX(2em) translateY(2em) rotate(-180deg);
    }
    75% {
      -webkit-transform: translateX(0) translateY(2em) rotate(-270deg)
        scale(0.5);
      transform: translateX(0) translateY(2em) rotate(-270deg) scale(0.5);
    }
    100% {
      -webkit-transform: rotate(-360deg);
      transform: rotate(-360deg);
    }
  }

  @keyframes sk-wandering-cubes {
    0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
    }
    25% {
      -webkit-transform: translateX(2em) rotate(-90deg) scale(0.5);
      transform: translateX(2em) rotate(-90deg) scale(0.5);
    }
    50% {
      /* Hack to make FF rotate in the right direction */
      -webkit-transform: translateX(2em) translateY(2em) rotate(-179deg);
      transform: translateX(2em) translateY(2em) rotate(-179deg);
    }
    50.1% {
      -webkit-transform: translateX(2em) translateY(2em) rotate(-180deg);
      transform: translateX(2em) translateY(2em) rotate(-180deg);
    }
    75% {
      -webkit-transform: translateX(0) translateY(2em) rotate(-270deg)
        scale(0.5);
      transform: translateX(0) translateY(2em) rotate(-270deg) scale(0.5);
    }
    100% {
      -webkit-transform: rotate(-360deg);
      transform: rotate(-360deg);
    }
  }
  .sk-spinner-pulse {
    width: 4em;
    height: 4em;
    margin: auto;
    background-color: #337ab7;
    border-radius: 100%;
    -webkit-animation: sk-spinner-pulse 1s infinite ease-in-out;
    animation: sk-spinner-pulse 1s infinite ease-in-out;
  }

  @-webkit-keyframes sk-spinner-pulse {
    0% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    100% {
      -webkit-transform: scale(1);
      transform: scale(1);
      opacity: 0;
    }
  }

  @keyframes sk-spinner-pulse {
    0% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    100% {
      -webkit-transform: scale(1);
      transform: scale(1);
      opacity: 0;
    }
  }
  .sk-chasing-dots {
    width: 4em;
    height: 4em;
    position: relative;
    margin: auto;
    text-align: center;
    -webkit-animation: sk-chasing-dots-rotate 2s infinite linear;
    animation: sk-chasing-dots-rotate 2s infinite linear;
  }
  .sk-chasing-dots .sk-child {
    width: 2em;
    height: 2em;
    display: inline-block;
    position: absolute;
    top: 0;
    background-color: #337ab7;
    border-radius: 100%;
    -webkit-animation: sk-chasing-dots-bounce 2s infinite ease-in-out;
    animation: sk-chasing-dots-bounce 2s infinite ease-in-out;
  }
  .sk-chasing-dots .sk-dot-2 {
    top: auto;
    bottom: 0;
    -webkit-animation-delay: -1s;
    animation-delay: -1s;
  }

  @-webkit-keyframes sk-chasing-dots-rotate {
    100% {
      -webkit-transform: rotate(360deg);
      transform: rotate(360deg);
    }
  }

  @keyframes sk-chasing-dots-rotate {
    100% {
      -webkit-transform: rotate(360deg);
      transform: rotate(360deg);
    }
  }
  @-webkit-keyframes sk-chasing-dots-bounce {
    0%,
    100% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    50% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }
  @keyframes sk-chasing-dots-bounce {
    0%,
    100% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    50% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }
  .sk-three-bounce {
    width: 8em;
    margin: auto;
    text-align: center;
  }
  .sk-three-bounce .sk-child {
    width: 2em;
    height: 2em;
    background-color: #337ab7;
    border-radius: 100%;
    display: inline-block;
    -webkit-animation: sk-three-bounce 1.4s ease-in-out 0s infinite both;
    animation: sk-three-bounce 1.4s ease-in-out 0s infinite both;
  }
  .sk-three-bounce .sk-bounce-1 {
    -webkit-animation-delay: -0.32s;
    animation-delay: -0.32s;
  }
  .sk-three-bounce .sk-bounce-2 {
    -webkit-animation-delay: -0.16s;
    animation-delay: -0.16s;
  }

  @-webkit-keyframes sk-three-bounce {
    0%,
    80%,
    100% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    40% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }

  @keyframes sk-three-bounce {
    0%,
    80%,
    100% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    40% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }
  .sk-circle-bounce {
    width: 4em;
    height: 4em;
    position: relative;
    margin: auto;
  }
  .sk-circle-bounce .sk-child {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
  }
  .sk-circle-bounce .sk-child:before {
    content: "";
    display: block;
    margin: 0 auto;
    width: 15%;
    height: 15%;
    background-color: #337ab7;
    border-radius: 100%;
    -webkit-animation: sk-circle-bounce-delay 1.2s infinite ease-in-out both;
    animation: sk-circle-bounce-delay 1.2s infinite ease-in-out both;
  }
  .sk-circle-bounce .sk-circle-2 {
    -webkit-transform: rotate(30deg);
    transform: rotate(30deg);
  }
  .sk-circle-bounce .sk-circle-3 {
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
  }
  .sk-circle-bounce .sk-circle-4 {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  .sk-circle-bounce .sk-circle-5 {
    -webkit-transform: rotate(120deg);
    transform: rotate(120deg);
  }
  .sk-circle-bounce .sk-circle-6 {
    -webkit-transform: rotate(150deg);
    transform: rotate(150deg);
  }
  .sk-circle-bounce .sk-circle-7 {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
  .sk-circle-bounce .sk-circle-8 {
    -webkit-transform: rotate(210deg);
    transform: rotate(210deg);
  }
  .sk-circle-bounce .sk-circle-9 {
    -webkit-transform: rotate(240deg);
    transform: rotate(240deg);
  }
  .sk-circle-bounce .sk-circle-10 {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
  }
  .sk-circle-bounce .sk-circle-11 {
    -webkit-transform: rotate(300deg);
    transform: rotate(300deg);
  }
  .sk-circle-bounce .sk-circle-12 {
    -webkit-transform: rotate(330deg);
    transform: rotate(330deg);
  }
  .sk-circle-bounce .sk-circle-2:before {
    -webkit-animation-delay: -1.1s;
    animation-delay: -1.1s;
  }
  .sk-circle-bounce .sk-circle-3:before {
    -webkit-animation-delay: -1s;
    animation-delay: -1s;
  }
  .sk-circle-bounce .sk-circle-4:before {
    -webkit-animation-delay: -0.9s;
    animation-delay: -0.9s;
  }
  .sk-circle-bounce .sk-circle-5:before {
    -webkit-animation-delay: -0.8s;
    animation-delay: -0.8s;
  }
  .sk-circle-bounce .sk-circle-6:before {
    -webkit-animation-delay: -0.7s;
    animation-delay: -0.7s;
  }
  .sk-circle-bounce .sk-circle-7:before {
    -webkit-animation-delay: -0.6s;
    animation-delay: -0.6s;
  }
  .sk-circle-bounce .sk-circle-8:before {
    -webkit-animation-delay: -0.5s;
    animation-delay: -0.5s;
  }
  .sk-circle-bounce .sk-circle-9:before {
    -webkit-animation-delay: -0.4s;
    animation-delay: -0.4s;
  }
  .sk-circle-bounce .sk-circle-10:before {
    -webkit-animation-delay: -0.3s;
    animation-delay: -0.3s;
  }
  .sk-circle-bounce .sk-circle-11:before {
    -webkit-animation-delay: -0.2s;
    animation-delay: -0.2s;
  }
  .sk-circle-bounce .sk-circle-12:before {
    -webkit-animation-delay: -0.1s;
    animation-delay: -0.1s;
  }

  @-webkit-keyframes sk-circle-bounce-delay {
    0%,
    80%,
    100% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    40% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }

  @keyframes sk-circle-bounce-delay {
    0%,
    80%,
    100% {
      -webkit-transform: scale(0);
      transform: scale(0);
    }
    40% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }
  .sk-cube-grid {
    width: 4em;
    height: 4em;
    margin: auto;
    /*
     * Spinner positions
     * 1 2 3
     * 4 5 6
     * 7 8 9
     */
  }
  .sk-cube-grid .sk-cube {
    width: 33%;
    height: 33%;
    background-color: #337ab7;
    float: left;
    -webkit-animation: sk-cube-grid-scale-delay 1.3s infinite ease-in-out;
    animation: sk-cube-grid-scale-delay 1.3s infinite ease-in-out;
  }
  .sk-cube-grid .sk-cube-1 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
  }
  .sk-cube-grid .sk-cube-2 {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
  }
  .sk-cube-grid .sk-cube-3 {
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
  }
  .sk-cube-grid .sk-cube-4 {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
  }
  .sk-cube-grid .sk-cube-5 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
  }
  .sk-cube-grid .sk-cube-6 {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
  }
  .sk-cube-grid .sk-cube-7 {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
  }
  .sk-cube-grid .sk-cube-8 {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
  }
  .sk-cube-grid .sk-cube-9 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
  }

  @-webkit-keyframes sk-cube-grid-scale-delay {
    0%,
    70%,
    100% {
      -webkit-transform: scale3D(1, 1, 1);
      transform: scale3D(1, 1, 1);
    }
    35% {
      -webkit-transform: scale3D(0, 0, 1);
      transform: scale3D(0, 0, 1);
    }
  }

  @keyframes sk-cube-grid-scale-delay {
    0%,
    70%,
    100% {
      -webkit-transform: scale3D(1, 1, 1);
      transform: scale3D(1, 1, 1);
    }
    35% {
      -webkit-transform: scale3D(0, 0, 1);
      transform: scale3D(0, 0, 1);
    }
  }
  .sk-fading-circle {
    width: 4em;
    height: 4em;
    position: relative;
    margin: auto;
  }
  .sk-fading-circle .sk-circle {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
  }
  .sk-fading-circle .sk-circle:before {
    content: "";
    display: block;
    margin: 0 auto;
    width: 15%;
    height: 15%;
    background-color: #337ab7;
    border-radius: 100%;
    -webkit-animation: sk-fading-circle-delay 1.2s infinite ease-in-out both;
    animation: sk-fading-circle-delay 1.2s infinite ease-in-out both;
  }
  .sk-fading-circle .sk-circle-2 {
    -webkit-transform: rotate(30deg);
    transform: rotate(30deg);
  }
  .sk-fading-circle .sk-circle-3 {
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
  }
  .sk-fading-circle .sk-circle-4 {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  .sk-fading-circle .sk-circle-5 {
    -webkit-transform: rotate(120deg);
    transform: rotate(120deg);
  }
  .sk-fading-circle .sk-circle-6 {
    -webkit-transform: rotate(150deg);
    transform: rotate(150deg);
  }
  .sk-fading-circle .sk-circle-7 {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
  .sk-fading-circle .sk-circle-8 {
    -webkit-transform: rotate(210deg);
    transform: rotate(210deg);
  }
  .sk-fading-circle .sk-circle-9 {
    -webkit-transform: rotate(240deg);
    transform: rotate(240deg);
  }
  .sk-fading-circle .sk-circle-10 {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
  }
  .sk-fading-circle .sk-circle-11 {
    -webkit-transform: rotate(300deg);
    transform: rotate(300deg);
  }
  .sk-fading-circle .sk-circle-12 {
    -webkit-transform: rotate(330deg);
    transform: rotate(330deg);
  }
  .sk-fading-circle .sk-circle-2:before {
    -webkit-animation-delay: -1.1s;
    animation-delay: -1.1s;
  }
  .sk-fading-circle .sk-circle-3:before {
    -webkit-animation-delay: -1s;
    animation-delay: -1s;
  }
  .sk-fading-circle .sk-circle-4:before {
    -webkit-animation-delay: -0.9s;
    animation-delay: -0.9s;
  }
  .sk-fading-circle .sk-circle-5:before {
    -webkit-animation-delay: -0.8s;
    animation-delay: -0.8s;
  }
  .sk-fading-circle .sk-circle-6:before {
    -webkit-animation-delay: -0.7s;
    animation-delay: -0.7s;
  }
  .sk-fading-circle .sk-circle-7:before {
    -webkit-animation-delay: -0.6s;
    animation-delay: -0.6s;
  }
  .sk-fading-circle .sk-circle-8:before {
    -webkit-animation-delay: -0.5s;
    animation-delay: -0.5s;
  }
  .sk-fading-circle .sk-circle-9:before {
    -webkit-animation-delay: -0.4s;
    animation-delay: -0.4s;
  }
  .sk-fading-circle .sk-circle-10:before {
    -webkit-animation-delay: -0.3s;
    animation-delay: -0.3s;
  }
  .sk-fading-circle .sk-circle-11:before {
    -webkit-animation-delay: -0.2s;
    animation-delay: -0.2s;
  }
  .sk-fading-circle .sk-circle-12:before {
    -webkit-animation-delay: -0.1s;
    animation-delay: -0.1s;
  }

  @-webkit-keyframes sk-fading-circle-delay {
    0%,
    39%,
    100% {
      opacity: 0;
    }
    40% {
      opacity: 1;
    }
  }

  @keyframes sk-fading-circle-delay {
    0%,
    39%,
    100% {
      opacity: 0;
    }
    40% {
      opacity: 1;
    }
  }
  .sk-folding-cube {
    width: 4em;
    height: 4em;
    position: relative;
    margin: auto;
    -webkit-transform: rotateZ(45deg);
    transform: rotateZ(45deg);
  }
  .sk-folding-cube .sk-cube {
    float: left;
    width: 50%;
    height: 50%;
    position: relative;
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  .sk-folding-cube .sk-cube:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #337ab7;
    -webkit-animation: sk-folding-cube-angle 2.4s infinite linear both;
    animation: sk-folding-cube-angle 2.4s infinite linear both;
    -webkit-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
  }
  .sk-folding-cube .sk-cube-2 {
    -webkit-transform: scale(1.1) rotateZ(90deg);
    transform: scale(1.1) rotateZ(90deg);
  }
  .sk-folding-cube .sk-cube-3 {
    -webkit-transform: scale(1.1) rotateZ(180deg);
    transform: scale(1.1) rotateZ(180deg);
  }
  .sk-folding-cube .sk-cube-4 {
    -webkit-transform: scale(1.1) rotateZ(270deg);
    transform: scale(1.1) rotateZ(270deg);
  }
  .sk-folding-cube .sk-cube-2:before {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
  }
  .sk-folding-cube .sk-cube-3:before {
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
  }
  .sk-folding-cube .sk-cube-4:before {
    -webkit-animation-delay: 0.9s;
    animation-delay: 0.9s;
  }

  @-webkit-keyframes sk-folding-cube-angle {
    0%,
    10% {
      -webkit-transform: perspective(140px) rotateX(-180deg);
      transform: perspective(140px) rotateX(-180deg);
      opacity: 0;
    }
    25%,
    75% {
      -webkit-transform: perspective(140px) rotateX(0deg);
      transform: perspective(140px) rotateX(0deg);
      opacity: 1;
    }
    90%,
    100% {
      -webkit-transform: perspective(140px) rotateY(180deg);
      transform: perspective(140px) rotateY(180deg);
      opacity: 0;
    }
  }

  @keyframes sk-folding-cube-angle {
    0%,
    10% {
      -webkit-transform: perspective(140px) rotateX(-180deg);
      transform: perspective(140px) rotateX(-180deg);
      opacity: 0;
    }
    25%,
    75% {
      -webkit-transform: perspective(140px) rotateX(0deg);
      transform: perspective(140px) rotateX(0deg);
      opacity: 1;
    }
    90%,
    100% {
      -webkit-transform: perspective(140px) rotateY(180deg);
      transform: perspective(140px) rotateY(180deg);
      opacity: 0;
    }
  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1009395.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OOM分析实战

OOM分析&实战 OOM分析&实战引言&#xff1a;一、JVM内存结构二、JVM OOM错误情况三、实践案例一案例二案例三 四、总结五、分析工具推荐六、参考文献 OOM分析&实战 引言&#xff1a; 在Java开发中&#xff0c;随着应用程序变得越来越复杂&#xff0c;内存管理问题…

运动耳机哪个好、最好的运动牌子排名榜

很多朋友喜欢在运动的时候听音乐&#xff0c;为此&#xff0c;他们会为自己配备一款蓝牙耳机或是运动耳机&#xff0c;可以在运动的时候随身听&#xff0c;可是&#xff0c;一些人在挑选耳机的时候犯难了&#xff0c;市面上那么多运动耳机&#xff0c;运动耳机哪个好&#xff1…

【黄色手套22】6话:构造数据类型

目录 序言&#xff1a; 结构体&#xff1a; 结构体数组&#xff1a; 结构体数组的定义和引用 &#xff1a; 使用关键字typedef自定义类型名&#xff1a; 使用typedef语句为数组类型取别名&#xff1a; 结构体所占内存的大小&#xff1a; 结构体的嵌套&#xff1a; 共用体…

内网穿透——Windows搭建服务器

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中&#xff0c;观看视频绝对是主力应用场景之一&…

vant 按需导入 vue2

vant 按需导入 vue2 1、通过npm安装 # Vue 3 项目&#xff0c;安装最新版 Vant&#xff1a; npm i vant -S# Vue 2 项目&#xff0c;安装 Vant 2&#xff1a; npm i vantlatest-v2 -S2、自动按需引入组件 babel-plugin-import 是一款 babel 插件&#xff0c;它会在编译过程中…

(Qt+Vs编译环境)报错:引发异常,写入访问权限冲突

起因&#xff1a;在一本Qt的书上看到使用这样的语句 &#xff0c;专门把原有的VS项目模板生成的代码做了修改&#xff0c;如下图所示&#xff1a; UI::MainWindow *ui; ui->setupUI(this); ui->lineEdit->Text(); 然后就开始引发异常&#xff0c;提示访问权限冲突。…

swaggo使用教程

安装与初始化 安装插件 go install github.com/swaggo/swag/cmd/swaglatest 安装依赖 go get -u github.com/swaggo/swag/cmd/swag 在包含main.go文件的项目根目录运行swag init。这将会解析注释并生成需要的文件&#xff08;docs文件夹和docs/docs.go&#xff09;。 swa…

如何快速构建你的AI开放平台?一步步教你!

目录 楔子成品展示后台页面面客端页面成品项目地址 项目源码地址one-apichatgpt-next-web 搭建步骤搭建one-api运行命令命令解释后台配置 搭建chatgpt-next-web运行命令命令解释面客端配置 总结 ✨这里是第七人格的博客✨小七&#xff0c;欢迎您的到来~✨ &#x1f345;系列专栏…

第22章_瑞萨MCU零基础入门系列教程之DMA控制器

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

nginx配置vue前端代理

背景&#xff1a;做一个前后端分离的项目&#xff0c;我这里是vue3 view ts创建的前端项目&#xff0c;在前端配置跨域请求。 一、开发阶段 在vue.config.js中配置devserver的proxy进行代理请求配置&#xff0c;然后将所有请求改为/api开头的即可。但是这样配置只在开发阶段…

数仓主题域和数据域、雪花模型,星型模型和星座模型

数仓模型和领域划分 一、主题域和数据域的差别二、雪花模型&#xff0c;星座模型和星型模型 一、主题域和数据域的差别 明确数据域作为数仓搭建的重要一环&#xff0c;能够让数仓的数据便于管理和应用。 数据域和主题域都是数据仓库中的重要概念&#xff0c;但含义略有不同&am…

【计算机视觉 | 图像模型】常见的计算机视觉 image model(CNNs Transformers) 的介绍合集(四)

文章目录 一、ResNeSt二、ShuffleNet v2三、FBNet四、Inception-v4五、ResNet-D六、MetaFormer七、PyramidNet八、RevNet九、Convolutional Vision Transformer&#xff08;CVT&#xff09;十、Tokens-To-Token Vision Transformer十一、Self-Attention Network十二、MixNet十三…

高速电路设计笔记----第二章

本章主要讲解的是电阻、电容、电感的选型。 一、电阻&#xff1a;关键还是限流。 1、通常在电源滤波时除了LC外&#xff0c;还会串接一个R。目的是为了降低信号的Q值&#xff0c;防止信号失真。常用于失真电源滤波。&#xff08;例如时钟电源滤波&#xff09; 2、选型的电阻的…

眺望数据应用新态势|第八届腾讯云Techo TVP开发者峰会圆满落幕

引言 在数据驱动的时代&#xff0c;如何有效地利用大数据已经成为了各个行业的重要课题。而随着云计算、人工智能等新兴技术的蓬勃发展&#xff0c;数据技术也随之不断生长并呈现出新的趋势与特点&#xff0c;企业该如何把握数据技术的新脉络&#xff0c;从而洞察数据背后的价…

【动态规划刷题 14】最长递增子序列 摆动序列

673. 最长递增子序列的个数 链接: 673. 最长递增子序列的个数 给定一个未排序的整数数组 nums &#xff0c; 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列&#xff0c;分别是 [1, 3, 4,…

【校招VIP】产品工作难点之如何平衡团队协作

考点介绍&#xff1a; 对于简历上有实习经验的同学&#xff0c;团队配合和项目推进是一个非常常见的提问点。产品经理经常会面临项目延期&#xff0c;无法上线的情况。基于此&#xff0c;产品经理应该做些什么来保障项目按时上线呢? 产品工作难点之如何平衡团队协作-相关题目…

Linux下创建普通用户遇到的问题及解决办法

在Linux下只有root一个超级用户&#xff0c;但是可以创建多个普通用户的&#xff0c;具体的创建方法如下。 先切换到root用户&#xff0c;使用下面的命令创建用户名为user1(本文均以此用户名为例&#xff0c;注意后续键入指令时不要弄错了)的普通用户。 su root useradd user1 …

interview4-集合篇

一、算法复杂度分析 为什么要进行复杂度分析&#xff1f;因为可以指导你编写出性能更优的代码和评判别人写的代码的好坏。 &#xff08;1&#xff09;时间复杂度分析 时间复杂度是用来评估代码的执行耗时的。 1.假如每行代码的执行耗时一样&#xff1a;1ms 2.分析这段代码总…

跟随算网超人,深度解析算力网络!

随着数字时代全面开启 算力网络已成为当下热点议题 作为信息社会两大基石 算力、网络为何如此重要&#xff1f; 又将如何影响社会发展脉动&#xff1f; 为帮助大家深入了解算力网络 我们特别推出“算网超人”系列科普 下面&#xff0c;请跟随算网超人的步伐 来到该系列的…

uni-app H5使用 tabbars切换,echartst图表变小 宽度只有100px问题解决

问题&#xff1a; 跳转到别tabbars页面之后&#xff0c;再回来&#xff0c;echarts图显示缩小小团子。 原因分析&#xff1a; 在tabs切换中有echarts的话&#xff0c;我们会发现初始化的那个echarts是有宽度的&#xff0c;当点击tabs切换之后&#xff0c;切换过来的echarts只…