@import "../styles/_base.less"; @import "../styles/_theme.less"; .container-loading { position: fixed; height: 100%; width: 100%; top: 0; left: 0; } .content { display: flex; flex-direction: column; align-items: center; justify-content: center; background: #fff; height: 100%; } .spinner { &-flash { &-medium { width: 60rpx; height: 60rpx; } &-mini { width: 40rpx; height: 40rpx; } &-large { width: 80rpx; height: 80rpx; } } &-flip { &-medium { width: 60rpx; height: 60rpx; } &-mini { width: 40rpx; height: 40rpx; } &-large { width: 80rpx; height: 80rpx; } } &-change { &-medium { width: 30rpx; height: 30rpx; } &-mini { width: 20rpx; height: 20rpx; } &-large { width: 50rpx; height: 50rpx; } } } /*flash */ .flash-spinner { position: relative; } .flash-bounce1, .flash-bounce2 { width: 100%; height: 100%; border-radius: 50%; background-color: @default-color; opacity: 0.6; position: absolute; top: 0; left: 0; -webkit-animation: bounce 2.0s infinite ease-in-out; animation: bounce 2.0s infinite ease-in-out; } .flash-bounce2 { -webkit-animation-delay: -1.0s; animation-delay: -1.0s; } @-webkit-keyframes bounce { 0%, 100% { -webkit-transform: scale(0.0); } 50% { -webkit-transform: scale(1.0); } } @keyframes bounce { 0%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 50% { transform: scale(1.0); -webkit-transform: scale(1.0); } } /*flip */ .flip-bounce1 { background-color: @default-color; -webkit-animation: rotateplane 1.2s infinite ease-in-out; animation: rotateplane 1.2s infinite ease-in-out; } @-webkit-keyframes rotateplane { 0% { -webkit-transform: perspective(120px); } 50% { -webkit-transform: perspective(120px) rotateY(180deg); } 100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg); } } @keyframes rotateplane { 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); } 50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); } 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } /* change */ .change-spinner { width: 240rpx; text-align: center; } .change-bounce1 { background-color: @default-color; border-radius: 100%; display: inline-block; -webkit-animation: bouncedelay 1.4s infinite ease-in-out; animation: bouncedelay 1.4s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-delay: -0.32s; animation-delay: -0.32s; } .change-bounce2 { background-color: @default-color; border-radius: 100%; display: inline-block; -webkit-animation: bouncedelay 1.4s infinite ease-in-out; animation: bouncedelay 1.4s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-delay: -0.16s; animation-delay: -0.16s; } .change-bounce3 { background-color: @default-color; border-radius: 100%; display: inline-block; -webkit-animation: bouncedelay 1.4s infinite ease-in-out; animation: bouncedelay 1.4s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes bouncedelay { 0%, 80%, 100% { -webkit-transform: scale(0.0); } 40% { -webkit-transform: scale(1.0); } } @keyframes bouncedelay { 0%, 80%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 40% { transform: scale(1.0); -webkit-transform: scale(1.0); } } // circle .spinner-circle { position: relative; } .spinner-circle-mini { width: 40rpx; height: 40rpx; } .spinner-circle-medium { width: 60rpx; height: 60rpx; } .spinner-circle-large { width: 70rpx; height: 70rpx; } .container1>.container-view, .container2>.container-view, .container3>.container-view { border-radius: 50%; position: absolute; background-color: @theme-color; -webkit-animation: bouncedelay4 1.2s infinite ease-in-out; animation: bouncedelay4 1.2s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .circle-mini { width: 12rpx; height: 12rpx; } .circle-medium { width: 15rpx; height: 15rpx; } .circle-large { width: 20rpx; height: 20rpx; } .spinner-circle .spinner-container { position: absolute; width: 100%; height: 100%; } .container2 { -webkit-transform: rotateZ(45deg); transform: rotateZ(45deg); } .container3 { -webkit-transform: rotateZ(90deg); transform: rotateZ(90deg); } .circle1 { top: 0; left: 0; } .circle2 { top: 0; right: 0; } .circle3 { right: 0; bottom: 0; } .circle4 { left: 0; bottom: 0; } .container2 .circle1 { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .container3 .circle1 { -webkit-animation-delay: -1.0s; animation-delay: -1.0s; } .container1 .circle2 { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .container2 .circle2 { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .container3 .circle2 { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .container1 .circle3 { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .container2 .circle3 { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .container3 .circle3 { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .container1 .circle4 { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .container2 .circle4 { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .container3 .circle4 { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes bouncedelay4 { 0%, 80%, 100% { -webkit-transform: scale(0.0) } 40% { -webkit-transform: scale(1.0) } } @keyframes bouncedelay4 { 0%, 80%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 40% { transform: scale(1.0); -webkit-transform: scale(1.0); } } // rotate .rotate { border-radius: 50%; animation: rotate 0.7s linear infinite; } .rotate-mini { height: 40rpx; width: 40rpx; border-top: 6rpx solid @default-color; border-right: 6rpx solid transparent !important; border-bottom: 6rpx solid @default-color; border-left: 6rpx solid @default-color; } .rotate-medium { height: 50rpx; width: 50rpx; border-top: 6rpx solid @default-color; border-right: 6rpx solid transparent !important; border-bottom: 6rpx solid @default-color; border-left: 6rpx solid @default-color; } .rotate-large { height: 70rpx; width: 70rpx; border-top: 8rpx solid @default-color; border-right: 8rpx solid transparent !important; border-bottom: 8rpx solid @default-color; border-left: 8rpx solid @default-color; } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }