css 持续的涟漪效果,CSS3 水滴涟漪型LOADING动效

CSS

语言:

CSSSCSS

确定

body {

display: -webkit-box;

display: -webkit-flex;

display: -ms-flexbox;

display: flex;

min-height: 100vh;

-webkit-box-align: center;

-webkit-align-items: center;

-ms-flex-align: center;

align-items: center;

-webkit-box-pack: center;

-webkit-justify-content: center;

-ms-flex-pack: center;

justify-content: center;

background: black;

color: white;

overflow: hidden;

position: relative;

}

.circle {

height: 300px;

width: 300px;

position: absolute;

top: 50%;

left: 50%;

margin: -150px;

visibility: hidden;

}

.circle::before {

content: '';

position: absolute;

height: inherit;

width: inherit;

box-shadow: 0 0 0 5px;

border-radius: 100%;

-webkit-animation: scale-up-fade 4s ease-out infinite;

animation: scale-up-fade 4s ease-out infinite;

visibility: visible;

}

.circle:nth-child(1) {

-webkit-transform: rotate(0deg) translateY(150px);

transform: rotate(0deg) translateY(150px);

}

.circle:nth-child(1)::before {

-webkit-animation-delay: 0s;

animation-delay: 0s;

}

.circle:nth-child(2) {

-webkit-transform: rotate(-30deg) translateY(150px);

transform: rotate(-30deg) translateY(150px);

}

.circle:nth-child(2)::before {

-webkit-animation-delay: -0.33333s;

animation-delay: -0.33333s;

}

.circle:nth-child(3) {

-webkit-transform: rotate(-60deg) translateY(150px);

transform: rotate(-60deg) translateY(150px);

}

.circle:nth-child(3)::before {

-webkit-animation-delay: -0.66667s;

animation-delay: -0.66667s;

}

.circle:nth-child(4) {

-webkit-transform: rotate(-90deg) translateY(150px);

transform: rotate(-90deg) translateY(150px);

}

.circle:nth-child(4)::before {

-webkit-animation-delay: -1s;

animation-delay: -1s;

}

.circle:nth-child(5) {

-webkit-transform: rotate(-120deg) translateY(150px);

transform: rotate(-120deg) translateY(150px);

}

.circle:nth-child(5)::before {

-webkit-animation-delay: -1.33333s;

animation-delay: -1.33333s;

}

.circle:nth-child(6) {

-webkit-transform: rotate(-150deg) translateY(150px);

transform: rotate(-150deg) translateY(150px);

}

.circle:nth-child(6)::before {

-webkit-animation-delay: -1.66667s;

animation-delay: -1.66667s;

}

.circle:nth-child(7) {

-webkit-transform: rotate(-180deg) translateY(150px);

transform: rotate(-180deg) translateY(150px);

}

.circle:nth-child(7)::before {

-webkit-animation-delay: -2s;

animation-delay: -2s;

}

.circle:nth-child(8) {

-webkit-transform: rotate(-210deg) translateY(150px);

transform: rotate(-210deg) translateY(150px);

}

.circle:nth-child(8)::before {

-webkit-animation-delay: -2.33333s;

animation-delay: -2.33333s;

}

.circle:nth-child(9) {

-webkit-transform: rotate(-240deg) translateY(150px);

transform: rotate(-240deg) translateY(150px);

}

.circle:nth-child(9)::before {

-webkit-animation-delay: -2.66667s;

animation-delay: -2.66667s;

}

.circle:nth-child(10) {

-webkit-transform: rotate(-270deg) translateY(150px);

transform: rotate(-270deg) translateY(150px);

}

.circle:nth-child(10)::before {

-webkit-animation-delay: -3s;

animation-delay: -3s;

}

.circle:nth-child(11) {

-webkit-transform: rotate(-300deg) translateY(150px);

transform: rotate(-300deg) translateY(150px);

}

.circle:nth-child(11)::before {

-webkit-animation-delay: -3.33333s;

animation-delay: -3.33333s;

}

.circle:nth-child(12) {

-webkit-transform: rotate(-330deg) translateY(150px);

transform: rotate(-330deg) translateY(150px);

}

.circle:nth-child(12)::before {

-webkit-animation-delay: -3.66667s;

animation-delay: -3.66667s;

}

.drop {

height: 300px;

width: 2px;

position: absolute;

top: 50%;

left: 50%;

margin: -150px -1px;

visibility: hidden;

}

.drop::before,

.drop::after {

content: '';

position: absolute;

height: inherit;

width: inherit;

background: currentColor;

visibility: visible;

border-radius: 50%;

-webkit-transform: scaleY(0.1);

transform: scaleY(0.1);

-webkit-animation: noop 4s ease-out infinite;

animation: noop 4s ease-out infinite;

}

.drop::before {

-webkit-animation-name: drop-down;

animation-name: drop-down;

}

.drop::after {

-webkit-animation-name: drop-up;

animation-name: drop-up;

opacity: 0.35;

}

.drop:nth-child(1) {

-webkit-transform: rotate(0deg) translateY(150px) rotate(0deg) rotateX(-90deg);

transform: rotate(0deg) translateY(150px) rotate(0deg) rotateX(-90deg);

}

.drop:nth-child(1)::before,

.drop:nth-child(1)::after {

-webkit-animation-delay: 0s;

animation-delay: 0s;

}

.drop:nth-child(2) {

-webkit-transform: rotate(-30deg) translateY(150px) rotate(30deg) rotateX(-90deg);

transform: rotate(-30deg) translateY(150px) rotate(30deg) rotateX(-90deg);

}

.drop:nth-child(2)::before,

.drop:nth-child(2)::after {

-webkit-animation-delay: -0.33333s;

animation-delay: -0.33333s;

}

.drop:nth-child(3) {

-webkit-transform: rotate(-60deg) translateY(150px) rotate(60deg) rotateX(-90deg);

transform: rotate(-60deg) translateY(150px) rotate(60deg) rotateX(-90deg);

}

.drop:nth-child(3)::before,

.drop:nth-child(3)::after {

-webkit-animation-delay: -0.66667s;

animation-delay: -0.66667s;

}

.drop:nth-child(4) {

-webkit-transform: rotate(-90deg) translateY(150px) rotate(90deg) rotateX(-90deg);

transform: rotate(-90deg) translateY(150px) rotate(90deg) rotateX(-90deg);

}

.drop:nth-child(4)::before,

.drop:nth-child(4)::after {

-webkit-animation-delay: -1s;

animation-delay: -1s;

}

.drop:nth-child(5) {

-webkit-transform: rotate(-120deg) translateY(150px) rotate(120deg) rotateX(-90deg);

transform: rotate(-120deg) translateY(150px) rotate(120deg) rotateX(-90deg);

}

.drop:nth-child(5)::before,

.drop:nth-child(5)::after {

-webkit-animation-delay: -1.33333s;

animation-delay: -1.33333s;

}

.drop:nth-child(6) {

-webkit-transform: rotate(-150deg) translateY(150px) rotate(150deg) rotateX(-90deg);

transform: rotate(-150deg) translateY(150px) rotate(150deg) rotateX(-90deg);

}

.drop:nth-child(6)::before,

.drop:nth-child(6)::after {

-webkit-animation-delay: -1.66667s;

animation-delay: -1.66667s;

}

.drop:nth-child(7) {

-webkit-transform: rotate(-180deg) translateY(150px) rotate(180deg) rotateX(-90deg);

transform: rotate(-180deg) translateY(150px) rotate(180deg) rotateX(-90deg);

}

.drop:nth-child(7)::before,

.drop:nth-child(7)::after {

-webkit-animation-delay: -2s;

animation-delay: -2s;

}

.drop:nth-child(8) {

-webkit-transform: rotate(-210deg) translateY(150px) rotate(210deg) rotateX(-90deg);

transform: rotate(-210deg) translateY(150px) rotate(210deg) rotateX(-90deg);

}

.drop:nth-child(8)::before,

.drop:nth-child(8)::after {

-webkit-animation-delay: -2.33333s;

animation-delay: -2.33333s;

}

.drop:nth-child(9) {

-webkit-transform: rotate(-240deg) translateY(150px) rotate(240deg) rotateX(-90deg);

transform: rotate(-240deg) translateY(150px) rotate(240deg) rotateX(-90deg);

}

.drop:nth-child(9)::before,

.drop:nth-child(9)::after {

-webkit-animation-delay: -2.66667s;

animation-delay: -2.66667s;

}

.drop:nth-child(10) {

-webkit-transform: rotate(-270deg) translateY(150px) rotate(270deg) rotateX(-90deg);

transform: rotate(-270deg) translateY(150px) rotate(270deg) rotateX(-90deg);

}

.drop:nth-child(10)::before,

.drop:nth-child(10)::after {

-webkit-animation-delay: -3s;

animation-delay: -3s;

}

.drop:nth-child(11) {

-webkit-transform: rotate(-300deg) translateY(150px) rotate(300deg) rotateX(-90deg);

transform: rotate(-300deg) translateY(150px) rotate(300deg) rotateX(-90deg);

}

.drop:nth-child(11)::before,

.drop:nth-child(11)::after {

-webkit-animation-delay: -3.33333s;

animation-delay: -3.33333s;

}

.drop:nth-child(12) {

-webkit-transform: rotate(-330deg) translateY(150px) rotate(330deg) rotateX(-90deg);

transform: rotate(-330deg) translateY(150px) rotate(330deg) rotateX(-90deg);

}

.drop:nth-child(12)::before,

.drop:nth-child(12)::after {

-webkit-animation-delay: -3.66667s;

animation-delay: -3.66667s;

}

@-webkit-keyframes drop-down {

from, 50% {

-webkit-transform-origin: 50% -1000%;

transform-origin: 50% -1000%;

-webkit-transform: scaleY(0);

transform: scaleY(0);

}

90% {

-webkit-transform-origin: 50% -500%;

transform-origin: 50% -500%;

-webkit-transform: scaleY(0.2);

transform: scaleY(0.2);

}

97% {

-webkit-transform-origin: 50% 50%;

transform-origin: 50% 50%;

-webkit-transform: scaleY(0.1);

transform: scaleY(0.1);

}

to {

-webkit-transform-origin: 50% 50%;

transform-origin: 50% 50%;

-webkit-transform: scaleY(0);

transform: scaleY(0);

}

}

@keyframes drop-down {

from, 50% {

-webkit-transform-origin: 50% -1000%;

transform-origin: 50% -1000%;

-webkit-transform: scaleY(0);

transform: scaleY(0);

}

90% {

-webkit-transform-origin: 50% -500%;

transform-origin: 50% -500%;

-webkit-transform: scaleY(0.2);

transform: scaleY(0.2);

}

97% {

-webkit-transform-origin: 50% 50%;

transform-origin: 50% 50%;

-webkit-transform: scaleY(0.1);

transform: scaleY(0.1);

}

to {

-webkit-transform-origin: 50% 50%;

transform-origin: 50% 50%;

-webkit-transform: scaleY(0);

transform: scaleY(0);

}

}

@-webkit-keyframes drop-up {

from, 50% {

-webkit-transform-origin: 50% 1100%;

transform-origin: 50% 1100%;

-webkit-transform: scaleY(0);

transform: scaleY(0);

}

90% {

-webkit-transform-origin: 50% 650%;

transform-origin: 50% 650%;

-webkit-transform: scaleY(0.2);

transform: scaleY(0.2);

}

97% {

-webkit-transform-origin: 50% 50%;

transform-origin: 50% 50%;

-webkit-transform: scaleY(0.1);

transform: scaleY(0.1);

}

to {

-webkit-transform-origin: 50% 50%;

transform-origin: 50% 50%;

-webkit-transform: scaleY(0);

transform: scaleY(0);

}

}

@keyframes drop-up {

from, 50% {

-webkit-transform-origin: 50% 1100%;

transform-origin: 50% 1100%;

-webkit-transform: scaleY(0);

transform: scaleY(0);

}

90% {

-webkit-transform-origin: 50% 650%;

transform-origin: 50% 650%;

-webkit-transform: scaleY(0.2);

transform: scaleY(0.2);

}

97% {

-webkit-transform-origin: 50% 50%;

transform-origin: 50% 50%;

-webkit-transform: scaleY(0.1);

transform: scaleY(0.1);

}

to {

-webkit-transform-origin: 50% 50%;

transform-origin: 50% 50%;

-webkit-transform: scaleY(0);

transform: scaleY(0);

}

}

@-webkit-keyframes scale-up-fade {

from {

-webkit-transform: scale(0);

transform: scale(0);

opacity: 1;

box-shadow: 0 0 0 10px;

}

13% {

-webkit-transform: scale(0.3);

transform: scale(0.3);

opacity: 1;

box-shadow: 0 0 0 6px;

}

to {

-webkit-transform: scale(1);

transform: scale(1);

opacity: 0;

box-shadow: 0 0 0 1px;

}

}

@keyframes scale-up-fade {

from {

-webkit-transform: scale(0);

transform: scale(0);

opacity: 1;

box-shadow: 0 0 0 10px;

}

13% {

-webkit-transform: scale(0.3);

transform: scale(0.3);

opacity: 1;

box-shadow: 0 0 0 6px;

}

to {

-webkit-transform: scale(1);

transform: scale(1);

opacity: 0;

box-shadow: 0 0 0 1px;

}

}

.circles,

.drops {

position: absolute;

top: 0;

left: 0;

right: 0;

bottom: 0;

}

.container {

height: 600px;

width: 600px;

position: relative;

-webkit-transform: rotateX(55deg);

transform: rotateX(55deg);

}

.container,

.container * {

-webkit-transform-style: preserve-3d;

transform-style: preserve-3d;

}

.view {

position: relative;

-webkit-perspective: 700px;

perspective: 700px;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值