animation loading

.loader {
  position: relative;
  width: 2.5em;
  height: 2.5em;
  transform: rotate(165deg);
}
.loader:before, .loader:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 0.5em;
  height: 0.5em;
  border-radius: 0.25em;
  transform: translate(-50%, -50%);
}
.loader:before {
  animation: before 2s infinite;
}
.loader:after {
  animation: after 2s infinite;
}

@keyframes before {
  0% {
    width: 0.5em;
    box-shadow: 1em -0.5em hsla(337, 84%, 48%, 0.75), -1em 0.5em hsla(190, 61%, 65%, 0.75);
  }
  35% {
    width: 2.5em;
    box-shadow: 0 -0.5em hsla(337, 84%, 48%, 0.75), 0 0.5em hsla(190, 61%, 65%, 0.75);
  }
  70% {
    width: 0.5em;
    box-shadow: -1em -0.5em hsla(337, 84%, 48%, 0.75), 1em 0.5em hsla(190, 61%, 65%, 0.75);
  }
  100% {
    box-shadow: 1em -0.5em hsla(337, 84%, 48%, 0.75), -1em 0.5em hsla(190, 61%, 65%, 0.75);
  }
}
@keyframes after {
  0% {
    height: 0.5em;
    box-shadow: 0.5em 1em hsla(160, 50%, 48%, 0.75), -0.5em -1em hsla(41, 82%, 52%, 0.75);
  }
  35% {
    height: 2.5em;
    box-shadow: 0.5em 0 hsla(160, 50%, 48%, 0.75), -0.5em 0 hsla(41, 82%, 52%, 0.75);
  }
  70% {
    height: 0.5em;
    box-shadow: 0.5em -1em hsla(160, 50%, 48%, 0.75), -0.5em 1em hsla(41, 82%, 52%, 0.75);
  }
  100% {
    box-shadow: 0.5em 1em hsla(160, 50%, 48%, 0.75), -0.5em -1em hsla(41, 82%, 52%, 0.75);
  }
}
html,
body {
  height: 100%;
}

.loader {
  position: absolute;
  top: calc(50% - 1.25em);
  left: calc(50% - 1.25em);
}

/*# sourceMappingURL=2.css.map */


.loader {
        position: relative;
        width: 5em; /* 2.5 */
        height: 5em; /* 2.5 */
        transform: rotate(165deg);
      }
      .loader:before, .loader:after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        display: block;
        width: 1em; /* 0.5em */
        height: 1em; /* 0.5em 改为 */
        border-radius: 0.5em; /* 0.25em */
        transform: translate(-50%, -50%);
      }
      .loader:before {
        animation: before 1.5s infinite;
      }
      .loader:after {
        animation: after 1.5s infinite;
      }
      @keyframes before {
        0% {
          width: 1em; /* 0.5em */
          box-shadow: 2em -1em hsla(337, 84%, 48%, 0.75), -2em 1em hsla(190, 61%, 65%, 0.75); /* 阴影距离加倍 */
        }
        35% {
          width: 5em; /* 2.5em */
          box-shadow: 0 -1em hsla(337, 84%, 48%, 0.75), 0 1em hsla(190, 61%, 65%, 0.75);
        }
        70% {
          width: 1em; /* 0.5em */
          box-shadow: -2em -1em hsla(337, 84%, 48%, 0.75), 2em 1em hsla(190, 61%, 65%, 0.75);
        }
        100% {
          box-shadow: 2em -1em hsla(337, 84%, 48%, 0.75), -2em 1em hsla(190, 61%, 65%, 0.75);
        }
      }

      @keyframes after {
        0% {
          height: 1em; /* 从 0.5em 改为 1em */
          box-shadow: 1em 2em hsla(160, 50%, 48%, 0.75), -1em -2em hsla(41, 82%, 52%, 0.75); /* 阴影距离加倍 */
        }
        35% {
          height: 5em; /* 从 2.5em 改为 5em */
          box-shadow: 1em 0 hsla(160, 50%, 48%, 0.75), -1em 0 hsla(41, 82%, 52%, 0.75);
        }
        70% {
          height: 1em; /* 从 0.5em 改为 1em */
          box-shadow: 1em -2em hsla(160, 50%, 48%, 0.75), -1em 2em hsla(41, 82%, 52%, 0.75);
        }
        100% {
          box-shadow: 1em 2em hsla(160, 50%, 48%, 0.75), -1em -2em hsla(41, 82%, 52%, 0.75);
        }
      }
      .loader {
        position: absolute;
        top: calc(50% + 2.5em); /* 1.25em */
        left: calc(50% - 2.5em); /* 1.25em */
      }

 

.app-loading {
        display: flex;
        width: 100%;
        height: 100%;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        background: #f0f2f5;
      }

      .app-loading .app-loading-wrap {
        position: absolute;
        top: 50%;
        left: 50%;
        display: flex;
        -webkit-transform: translate3d(-50%, -50%, 0);
        transform: translate3d(-50%, -50%, 0);
        justify-content: center;
        align-items: center;
        flex-direction: column;
      }

      .app-loading .app-loading-title {
        margin-bottom: 30px;
        font-size: 20px;
        font-weight: bold;
        text-align: center;
      }

      .app-loading .app-loading-logo {
        width: 100px;
        margin: 0 auto 15px auto;
      }

      .app-loading .app-loading-item {
        position: relative;
        display: inline-block;
        width: 60px;
        height: 60px;
        vertical-align: middle;
        border-radius: 50%;
      }

      .app-loading .app-loading-outter {
        position: absolute;
        width: 100%;
        height: 100%;
        border: 4px solid #2d8cf0;
        border-bottom: 0;
        border-left-color: transparent;
        border-radius: 50%;
        animation: loader-outter 1s cubic-bezier(0.42, 0.61, 0.58, 0.41) infinite;
      }

      .app-loading .app-loading-inner {
        position: absolute;
        top: calc(50% - 20px);
        left: calc(50% - 20px);
        width: 40px;
        height: 40px;
        border: 4px solid #87bdff;
        border-right: 0;
        border-top-color: transparent;
        border-radius: 50%;
        animation: loader-inner 1s cubic-bezier(0.42, 0.61, 0.58, 0.41) infinite;
      }

      @-webkit-keyframes loader-outter {
        0% {
          -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
        }

        100% {
          -webkit-transform: rotate(360deg);
          transform: rotate(360deg);
        }
      }

      @keyframes loader-outter {
        0% {
          -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
        }

        100% {
          -webkit-transform: rotate(360deg);
          transform: rotate(360deg);
        }
      }

      @-webkit-keyframes loader-inner {
        0% {
          -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
        }

        100% {
          -webkit-transform: rotate(-360deg);
          transform: rotate(-360deg);
        }
      }

      @keyframes loader-inner {
        0% {
          -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
        }

        100% {
          -webkit-transform: rotate(-360deg);
          transform: rotate(-360deg);
        }
      }

 

<div class="loader"></div>
<div class="app-loading-item">
          <div class="app-loading-outter"></div>
          <div class="app-loading-inner"></div>
        </div>
https://www.runoob.com/w3cnote/free-html5-css3-loaders-preloaders.html
https://www.jq22.com/(A(caqiry))/plugin/4405
 
npm install -g sass
sass 1.scss 2.css

 

posted @ 2025-12-16 14:23  石头记1  阅读(3)  评论(0)    收藏  举报