<!-- 加载动画页面 -->
|
|
<template>
|
|
<view v-if="loading" class="loading">
|
|
<div class="loader"></div>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
num : 4, //默认2秒后关闭(这里处理初始页面重叠的bug,初始页面是2秒后消失,所以这里加个2)
|
|
interval : null
|
|
}
|
|
},
|
|
created(){
|
|
this.interval = setInterval(() => {
|
|
if(this.num <= 0){
|
|
this.num = 4;
|
|
this.$emit('close');
|
|
clearInterval(this.interval)
|
|
}
|
|
this.num--;
|
|
},1000)
|
|
},
|
|
destroyed(){
|
|
if(this.interval){
|
|
clearInterval(this.interval)
|
|
}
|
|
},
|
|
props : {
|
|
loading : {
|
|
type : Boolean,
|
|
default : true
|
|
}
|
|
},
|
|
methods: {
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.loading {
|
|
display: flex;
|
|
justify-content: center;
|
|
|
|
.loader {
|
|
width: 50px;
|
|
aspect-ratio: 1;
|
|
display: grid;
|
|
}
|
|
|
|
.loader::before,
|
|
.loader::after {
|
|
content: "";
|
|
grid-area: 1/1;
|
|
--c: no-repeat radial-gradient(farthest-side, #B0C73B 92%, #0000);
|
|
background:
|
|
var(--c) 50% 0,
|
|
var(--c) 50% 100%,
|
|
var(--c) 100% 50%,
|
|
var(--c) 0 50%;
|
|
background-size: 12px 12px;
|
|
animation: l12 1s infinite;
|
|
}
|
|
|
|
.loader::before {
|
|
margin: 4px;
|
|
filter: hue-rotate(45deg);
|
|
background-size: 8px 8px;
|
|
animation-timing-function: linear
|
|
}
|
|
|
|
@keyframes l12 {
|
|
100% {
|
|
transform: rotate(.5turn)
|
|
}
|
|
}
|
|
}
|
|
</style>
|