dataV-xunfei/src/components/animation/lodingSpin.vue

80 lines
1.2 KiB
Vue

<template>
<div style="position: relative;">
<div class="spin">
<div class="loader">
<div class="outer" />
<div class="middle" />
<div class="inner" />
</div>
</div>
<p class="text">
思考中
</p>
</div>
</template>
<style scoped>
.text{
display: block;
width: 100%;
font-size: 1.5em;
text-align: center;
position: absolute;
left: 0;
bottom: -2em;
}
.spin{
display: flex;
justify-content: center;
align-items: center;
width: 20em;
height: 20em;
transform: scale(5);
}
.loader {
position: relative;
}
.outer,
.middle,
.inner {
border: 3px solid transparent;
border-top-color: #7fe7c4;
border-right-color: #7fe7c4;
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
}
.outer {
width: 3.5em;
height: 3.5em;
margin-left: -1.75em;
margin-top: -1.75em;
animation: spin 2s linear infinite;
}
.middle {
width: 2.1em;
height: 2.1em;
margin-left: -1.05em;
margin-top: -1.05em;
animation: spin 1.75s linear reverse infinite;
}
.inner {
width: 0.8em;
height: 0.8em;
margin-left: -0.4em;
margin-top: -0.4em;
animation: spin 1.5s linear infinite;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
</style>