<style>
@-webkit-keyframes nextVectorRoute {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg)
}
5% {
-webkit-transform: rotate(90deg);
transform: rotate(90deg)
}
25% {
-webkit-transform: rotate(90deg);
transform: rotate(90deg)
}
30% {
-webkit-transform: rotate(180deg);
transform: rotate(180deg)
}
50% {
-webkit-transform: rotate(180deg);
transform: rotate(180deg)
}
55% {
-webkit-transform: rotate(270deg);
transform: rotate(270deg)
}
75% {
-webkit-transform: rotate(270deg);
transform: rotate(270deg)
}
80% {
-webkit-transform: rotate(1turn);
transform: rotate(1turn)
}
to {
-webkit-transform: rotate(1turn);
transform: rotate(1turn)
}
}
@-moz-keyframes nextVectorRoute {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
transform: rotate(0deg)
}
5% {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
transform: rotate(90deg)
}
25% {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
transform: rotate(90deg)
}
30% {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
transform: rotate(180deg)
}
50% {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
transform: rotate(180deg)
}
55% {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
transform: rotate(270deg)
}
75% {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
transform: rotate(270deg)
}
80% {
-webkit-transform: rotate(1turn);
-moz-transform: rotate(1turn);
transform: rotate(1turn)
}
to {
-webkit-transform: rotate(1turn);
-moz-transform: rotate(1turn);
transform: rotate(1turn)
}
}
@-o-keyframes nextVectorRoute {
0% {
-webkit-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg)
}
5% {
-webkit-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg)
}
25% {
-webkit-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg)
}
30% {
-webkit-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg)
}
50% {
-webkit-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg)
}
55% {
-webkit-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg)
}
75% {
-webkit-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg)
}
80% {
-webkit-transform: rotate(1turn);
-o-transform: rotate(1turn);
transform: rotate(1turn)
}
to {
-webkit-transform: rotate(1turn);
-o-transform: rotate(1turn);
transform: rotate(1turn)
}
}
@keyframes nextVectorRoute {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg)
}
5% {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg)
}
25% {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg)
}
30% {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg)
}
50% {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg)
}
55% {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg)
}
75% {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg)
}
80% {
-webkit-transform: rotate(1turn);
-moz-transform: rotate(1turn);
-o-transform: rotate(1turn);
transform: rotate(1turn)
}
to {
-webkit-transform: rotate(1turn);
-moz-transform: rotate(1turn);
-o-transform: rotate(1turn);
transform: rotate(1turn)
}
}
@-webkit-keyframes nextVectorDotsYR {
25% {
bottom: 0
}
45%, 50% {
bottom: 16.8px;
bottom: -webkit-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
bottom: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
height: 14.4px;
height: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2);
width: 14.4px;
width: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
bottom: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-moz-keyframes nextVectorDotsYR {
25% {
bottom: 0
}
45%, 50% {
bottom: 16.8px;
bottom: -moz-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
bottom: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
height: 14.4px;
height: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2);
width: 14.4px;
width: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
bottom: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-o-keyframes nextVectorDotsYR {
25% {
bottom: 0
}
45%, 50% {
bottom: 16.8px;
bottom: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
height: 14.4px;
height: calc(var(--loading-large-dot-size, 12px) * 1.2);
width: 14.4px;
width: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
bottom: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@keyframes nextVectorDotsYR {
25% {
bottom: 0
}
45%, 50% {
bottom: 16.8px;
bottom: -webkit-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
bottom: -moz-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
bottom: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
height: 14.4px;
height: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2);
width: 14.4px;
width: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
bottom: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-webkit-keyframes nextVectorDotsY {
25% {
top: 0
}
45%, 50% {
top: 16.8px;
top: -webkit-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
top: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
height: 14.4px;
height: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2);
width: 14.4px;
width: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
top: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-moz-keyframes nextVectorDotsY {
25% {
top: 0
}
45%, 50% {
top: 16.8px;
top: -moz-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
top: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
height: 14.4px;
height: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2);
width: 14.4px;
width: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
top: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-o-keyframes nextVectorDotsY {
25% {
top: 0
}
45%, 50% {
top: 16.8px;
top: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
height: 14.4px;
height: calc(var(--loading-large-dot-size, 12px) * 1.2);
width: 14.4px;
width: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
top: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@keyframes nextVectorDotsY {
25% {
top: 0
}
45%, 50% {
top: 16.8px;
top: -webkit-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
top: -moz-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
top: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
height: 14.4px;
height: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2);
width: 14.4px;
width: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
top: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-webkit-keyframes nextVectorDotsX {
25% {
left: 0
}
45%, 50% {
left: 16.8px;
left: -webkit-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
left: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
width: 14.4px;
width: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2);
height: 14.4px;
height: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
left: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-moz-keyframes nextVectorDotsX {
25% {
left: 0
}
45%, 50% {
left: 16.8px;
left: -moz-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
left: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
width: 14.4px;
width: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2);
height: 14.4px;
height: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
left: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-o-keyframes nextVectorDotsX {
25% {
left: 0
}
45%, 50% {
left: 16.8px;
left: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
width: 14.4px;
width: calc(var(--loading-large-dot-size, 12px) * 1.2);
height: 14.4px;
height: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
left: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@keyframes nextVectorDotsX {
25% {
left: 0
}
45%, 50% {
left: 16.8px;
left: -webkit-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
left: -moz-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
left: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
width: 14.4px;
width: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2);
height: 14.4px;
height: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
left: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-webkit-keyframes nextVectorDotsXR {
25% {
right: 0
}
45%, 50% {
right: 16.8px;
right: -webkit-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
right: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
width: 14.4px;
width: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2);
height: 14.4px;
height: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
right: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-moz-keyframes nextVectorDotsXR {
25% {
right: 0
}
45%, 50% {
right: 16.8px;
right: -moz-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
right: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
width: 14.4px;
width: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2);
height: 14.4px;
height: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
right: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@-o-keyframes nextVectorDotsXR {
25% {
right: 0
}
45%, 50% {
right: 16.8px;
right: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
width: 14.4px;
width: calc(var(--loading-large-dot-size, 12px) * 1.2);
height: 14.4px;
height: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
right: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
@keyframes nextVectorDotsXR {
25% {
right: 0
}
45%, 50% {
right: 16.8px;
right: -webkit-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
right: -moz-calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
right: calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);
width: 14.4px;
width: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
width: calc(var(--loading-large-dot-size, 12px) * 1.2);
height: 14.4px;
height: -webkit-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: -moz-calc(var(--loading-large-dot-size, 12px) * 1.2);
height: calc(var(--loading-large-dot-size, 12px) * 1.2)
}
90% {
right: 0;
height: 12px;
height: var(--loading-large-dot-size, 12px);
width: 12px;
width: var(--loading-large-dot-size, 12px)
}
}
.next-loading-tip {
display: block;
position: absolute;
top: 50%;
left: 50%;
z-index: 4;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
text-align: center;
}
.next-loading-fusion-reactor {
display: inline-block;
width: 48px;
height: 48px;
position: relative;
margin: 0;
-webkit-animation-duration: 5.6s;
-moz-animation-duration: 5.6s;
-o-animation-duration: 5.6s;
animation-duration: 5.6s;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
-o-animation-iteration-count: infinite;
animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-timing-function: linear;
-o-animation-timing-function: linear;
animation-timing-function: linear;
-webkit-animation-name: nextVectorRoute;
-moz-animation-name: nextVectorRoute;
-o-animation-name: nextVectorRoute;
animation-name: nextVectorRoute;
}
.next-loading-fusion-reactor .next-loading-dot:first-child {
top: 0;
bottom: 0;
left: 0;
-webkit-animation-name: nextVectorDotsX;
-moz-animation-name: nextVectorDotsX;
-o-animation-name: nextVectorDotsX;
animation-name: nextVectorDotsX;
}
.next-loading-fusion-reactor .next-loading-dot {
position: absolute;
margin: auto;
width: 12px;
width: var(--loading-large-dot-size, 12px);
height: 12px;
height: var(--loading-large-dot-size, 12px);
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
background: #0064c8;
background: var(--loading-dot-color, #0064c8);
-webkit-animation-timing-function: ease-in-out;
-moz-animation-timing-function: ease-in-out;
-o-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
-o-animation-iteration-count: infinite;
animation-iteration-count: infinite;
-webkit-animation-duration: 1.4s;
-moz-animation-duration: 1.4s;
-o-animation-duration: 1.4s;
animation-duration: 1.4s;
}
.next-loading-fusion-reactor .next-loading-dot:nth-child(2) {
left: 0;
right: 0;
top: 0;
opacity: .8;
-webkit-animation-name: nextVectorDotsY;
-moz-animation-name: nextVectorDotsY;
-o-animation-name: nextVectorDotsY;
animation-name: nextVectorDotsY;
}
.next-loading-fusion-reactor .next-loading-dot:nth-child(3) {
top: 0;
bottom: 0;
right: 0;
opacity: .6;
-webkit-animation-name: nextVectorDotsXR;
-moz-animation-name: nextVectorDotsXR;
-o-animation-name: nextVectorDotsXR;
animation-name: nextVectorDotsXR;
}
.next-loading-fusion-reactor .next-loading-dot:nth-child(4) {
left: 0;
right: 0;
bottom: 0;
opacity: .2;
-webkit-animation-name: nextVectorDotsYR;
-moz-animation-name: nextVectorDotsYR;
-o-animation-name: nextVectorDotsYR;
animation-name: nextVectorDotsYR;
}
</style>
<div class="next-loading-tip">
<div class="next-loading-indicator">
<div class="next-loading-fusion-reactor"><span class="next-loading-dot"></span><span class="next-loading-dot"></span><span class="next-loading-dot"></span><span class="next-loading-dot"></span></div>
</div>
<div class="next-loading-tip-content">探测中...</div>
</div>
效果演示