css流星

<div class="night">
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
  <div class="shooting_star"></div>
</div>
body {
  background: radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%);
  height: 100vh;
  overflow: hidden;
  display: flex;
  font-family: 'Anton', sans-serif;
  justify-content: center;
  align-items: center;
}

.night {
  position: relative;
  width: 100%;
  height: 100%;
  -webkit-transform: rotateZ(45deg);
          transform: rotateZ(45deg);
}

.shooting_star {
  position: absolute;
  left: 50%;
  top: 50%;
  height: 2px;
  background: linear-gradient(-45deg, #5f91ff, rgba(0, 0, 255, 0));
  border-radius: 999px;
  -webkit-filter: drop-shadow(0 0 6px #699bff);
          filter: drop-shadow(0 0 6px #699bff);
  -webkit-animation: tail 3000ms ease-in-out infinite, shooting 3000ms ease-in-out infinite;
          animation: tail 3000ms ease-in-out infinite, shooting 3000ms ease-in-out infinite;
}
.shooting_star::before, .shooting_star::after {
  content: '';
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  height: 2px;
  background: linear-gradient(-45deg, rgba(0, 0, 255, 0), #5f91ff, rgba(0, 0, 255, 0));
  -webkit-transform: translateX(50%) rotateZ(45deg);
          transform: translateX(50%) rotateZ(45deg);
  border-radius: 100%;
  -webkit-animation: shining 3000ms ease-in-out infinite;
          animation: shining 3000ms ease-in-out infinite;
}
.shooting_star::after {
  -webkit-transform: translateX(50%) rotateZ(-45deg);
          transform: translateX(50%) rotateZ(-45deg);
}
.shooting_star:nth-child(1) {
  top: calc(50% - 200px);
  left: calc(50% - 105px);
  -webkit-animation-delay: 9592ms;
          animation-delay: 9592ms;
}
.shooting_star:nth-child(1)::before, .shooting_star:nth-child(1)::after, .shooting_star:nth-child(1)::after {
  -webkit-animation-delay: 9592ms;
          animation-delay: 9592ms;
}
.shooting_star:nth-child(2) {
  top: calc(50% - -18px);
  left: calc(50% - 87px);
  -webkit-animation-delay: 5908ms;
          animation-delay: 5908ms;
}
.shooting_star:nth-child(2)::before, .shooting_star:nth-child(2)::after, .shooting_star:nth-child(2)::after {
  -webkit-animation-delay: 5908ms;
          animation-delay: 5908ms;
}
.shooting_star:nth-child(3) {
  top: calc(50% - 131px);
  left: calc(50% - 81px);
  -webkit-animation-delay: 1191ms;
          animation-delay: 1191ms;
}
.shooting_star:nth-child(3)::before, .shooting_star:nth-child(3)::after, .shooting_star:nth-child(3)::after {
  -webkit-animation-delay: 1191ms;
          animation-delay: 1191ms;
}
.shooting_star:nth-child(4) {
  top: calc(50% - 178px);
  left: calc(50% - 252px);
  -webkit-animation-delay: 9638ms;
          animation-delay: 9638ms;
}
.shooting_star:nth-child(4)::before, .shooting_star:nth-child(4)::after, .shooting_star:nth-child(4)::after {
  -webkit-animation-delay: 9638ms;
          animation-delay: 9638ms;
}
.shooting_star:nth-child(5) {
  top: calc(50% - 54px);
  left: calc(50% - 207px);
  -webkit-animation-delay: 2554ms;
          animation-delay: 2554ms;
}
.shooting_star:nth-child(5)::before, .shooting_star:nth-child(5)::after, .shooting_star:nth-child(5)::after {
  -webkit-animation-delay: 2554ms;
          animation-delay: 2554ms;
}
.shooting_star:nth-child(6) {
  top: calc(50% - 170px);
  left: calc(50% - 257px);
  -webkit-animation-delay: 2165ms;
          animation-delay: 2165ms;
}
.shooting_star:nth-child(6)::before, .shooting_star:nth-child(6)::after, .shooting_star:nth-child(6)::after {
  -webkit-animation-delay: 2165ms;
          animation-delay: 2165ms;
}
.shooting_star:nth-child(7) {
  top: calc(50% - -93px);
  left: calc(50% - 69px);
  -webkit-animation-delay: 9997ms;
          animation-delay: 9997ms;
}
.shooting_star:nth-child(7)::before, .shooting_star:nth-child(7)::after, .shooting_star:nth-child(7)::after {
  -webkit-animation-delay: 9997ms;
          animation-delay: 9997ms;
}
.shooting_star:nth-child(8) {
  top: calc(50% - 106px);
  left: calc(50% - 99px);
  -webkit-animation-delay: 422ms;
          animation-delay: 422ms;
}
.shooting_star:nth-child(8)::before, .shooting_star:nth-child(8)::after, .shooting_star:nth-child(8)::after {
  -webkit-animation-delay: 422ms;
          animation-delay: 422ms;
}
.shooting_star:nth-child(9) {
  top: calc(50% - -17px);
  left: calc(50% - 35px);
  -webkit-animation-delay: 2714ms;
          animation-delay: 2714ms;
}
.shooting_star:nth-child(9)::before, .shooting_star:nth-child(9)::after, .shooting_star:nth-child(9)::after {
  -webkit-animation-delay: 2714ms;
          animation-delay: 2714ms;
}
.shooting_star:nth-child(10) {
  top: calc(50% - -114px);
  left: calc(50% - 232px);
  -webkit-animation-delay: 6136ms;
          animation-delay: 6136ms;
}
.shooting_star:nth-child(10)::before, .shooting_star:nth-child(10)::after, .shooting_star:nth-child(10)::after {
  -webkit-animation-delay: 6136ms;
          animation-delay: 6136ms;
}
.shooting_star:nth-child(11) {
  top: calc(50% - 175px);
  left: calc(50% - 73px);
  -webkit-animation-delay: 9617ms;
          animation-delay: 9617ms;
}
.shooting_star:nth-child(11)::before, .shooting_star:nth-child(11)::after, .shooting_star:nth-child(11)::after {
  -webkit-animation-delay: 9617ms;
          animation-delay: 9617ms;
}
.shooting_star:nth-child(12) {
  top: calc(50% - -137px);
  left: calc(50% - 300px);
  -webkit-animation-delay: 8175ms;
          animation-delay: 8175ms;
}
.shooting_star:nth-child(12)::before, .shooting_star:nth-child(12)::after, .shooting_star:nth-child(12)::after {
  -webkit-animation-delay: 8175ms;
          animation-delay: 8175ms;
}
.shooting_star:nth-child(13) {
  top: calc(50% - 64px);
  left: calc(50% - 125px);
  -webkit-animation-delay: 2715ms;
          animation-delay: 2715ms;
}
.shooting_star:nth-child(13)::before, .shooting_star:nth-child(13)::after, .shooting_star:nth-child(13)::after {
  -webkit-animation-delay: 2715ms;
          animation-delay: 2715ms;
}
.shooting_star:nth-child(14) {
  top: calc(50% - 144px);
  left: calc(50% - 266px);
  -webkit-animation-delay: 9024ms;
          animation-delay: 9024ms;
}
.shooting_star:nth-child(14)::before, .shooting_star:nth-child(14)::after, .shooting_star:nth-child(14)::after {
  -webkit-animation-delay: 9024ms;
          animation-delay: 9024ms;
}
.shooting_star:nth-child(15) {
  top: calc(50% - -70px);
  left: calc(50% - 111px);
  -webkit-animation-delay: 4994ms;
          animation-delay: 4994ms;
}
.shooting_star:nth-child(15)::before, .shooting_star:nth-child(15)::after, .shooting_star:nth-child(15)::after {
  -webkit-animation-delay: 4994ms;
          animation-delay: 4994ms;
}
.shooting_star:nth-child(16) {
  top: calc(50% - -147px);
  left: calc(50% - 196px);
  -webkit-animation-delay: 6546ms;
          animation-delay: 6546ms;
}
.shooting_star:nth-child(16)::before, .shooting_star:nth-child(16)::after, .shooting_star:nth-child(16)::after {
  -webkit-animation-delay: 6546ms;
          animation-delay: 6546ms;
}
.shooting_star:nth-child(17) {
  top: calc(50% - -49px);
  left: calc(50% - 240px);
  -webkit-animation-delay: 895ms;
          animation-delay: 895ms;
}
.shooting_star:nth-child(17)::before, .shooting_star:nth-child(17)::after, .shooting_star:nth-child(17)::after {
  -webkit-animation-delay: 895ms;
          animation-delay: 895ms;
}
.shooting_star:nth-child(18) {
  top: calc(50% - 171px);
  left: calc(50% - 3px);
  -webkit-animation-delay: 4390ms;
          animation-delay: 4390ms;
}
.shooting_star:nth-child(18)::before, .shooting_star:nth-child(18)::after, .shooting_star:nth-child(18)::after {
  -webkit-animation-delay: 4390ms;
          animation-delay: 4390ms;
}
.shooting_star:nth-child(19) {
  top: calc(50% - -57px);
  left: calc(50% - 58px);
  -webkit-animation-delay: 5414ms;
          animation-delay: 5414ms;
}
.shooting_star:nth-child(19)::before, .shooting_star:nth-child(19)::after, .shooting_star:nth-child(19)::after {
  -webkit-animation-delay: 5414ms;
          animation-delay: 5414ms;
}
.shooting_star:nth-child(20) {
  top: calc(50% - 109px);
  left: calc(50% - 174px);
  -webkit-animation-delay: 9384ms;
          animation-delay: 9384ms;
}
.shooting_star:nth-child(20)::before, .shooting_star:nth-child(20)::after, .shooting_star:nth-child(20)::after {
  -webkit-animation-delay: 9384ms;
          animation-delay: 9384ms;
}

@-webkit-keyframes tail {
  0% {
    width: 0;
  }
  30% {
    width: 100px;
  }
  100% {
    width: 0;
  }
}

@keyframes tail {
  0% {
    width: 0;
  }
  30% {
    width: 100px;
  }
  100% {
    width: 0;
  }
}
@-webkit-keyframes shining {
  0% {
    width: 0;
  }
  50% {
    width: 30px;
  }
  100% {
    width: 0;
  }
}
@keyframes shining {
  0% {
    width: 0;
  }
  50% {
    width: 30px;
  }
  100% {
    width: 0;
  }
}
@-webkit-keyframes shooting {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(300px);
            transform: translateX(300px);
  }
}
@keyframes shooting {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(300px);
            transform: translateX(300px);
  }
}
@-webkit-keyframes sky {
  0% {
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  100% {
    -webkit-transform: rotate(405deg);
            transform: rotate(405deg);
  }
}
@keyframes sky {
  0% {
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  100% {
    -webkit-transform: rotate(405deg);
            transform: rotate(405deg);
  }
}

  

radial-gradient()函数创建一个由原点(渐变中心)辐射开的颜色渐变的图片,边缘形状只能为为circle(圆形)或者ellipse(椭圆);

语法:

radial-gradient(circle at center, red 0, blue, green 100%)  /* 从元素中心点渐变,起始色为red,渐变到blue,终止色为green*/

posted @ 2019-01-10 15:12  筱小Q  阅读(323)  评论(0编辑  收藏  举报