ten-design-vue
Version:
ten-vue
91 lines (87 loc) • 1.71 kB
text/less
/* dependencies icon */
@import "../vars.less";
@keyframes rotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
// Loading 动画
@keyframes stretchdelay {
0%, 40%, 100% {
transform: scaleY(0.33);
-webkit-transform: scaleY(0.33);
} 20% {
transform: scaleY(1.0);
-webkit-transform: scaleY(1.0);
}
}
.ten-loading {
position: relative;
height: 100%;
&--block {
width: 100%;
position: absolute;
left: 0;
top: 0;
}
&__wrapper {
text-align: center;
position: absolute;
left: 0;
right: 0;
top: 50%;
margin-top: -12px;
z-index: 2;
&--hasText {
margin-top: -24px;
}
&--closed {
opacity: 0;
user-select: none;
pointer-events: none;
}
}
&__icon {
&-default {
height: 24px;
& > span {
width: @loading-width-default;
height: 100%;
display: inline-block;
background-color: @primary-color;
animation: stretchdelay 1.2s infinite ease-in-out;
margin: 0 2px;
border-radius: @loading-border-radius-default;
&:nth-child(2) {
animation-delay: -1.1s;
}
&:nth-child(3) {
animation-delay: -1.0s;
}
&:nth-child(4) {
animation-delay: -0.9s;
}
}
}
}
&__text {
font-size: @text-level-1-size;
color: @text-color;
margin-top: 14px;
}
&--blur {
opacity: 0.6;
user-select: none;
pointer-events: none;
}
&__indicator {
display: flex;
align-items: center;
justify-content: center;
transform-origin: center;
animation: rotate 1.2s infinite ease-in-out;
}
}