问题售后系统APP端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

238 lines
4.1 KiB

<template>
<view>
<template v-if="showLoading">
<view class="loading-box" :class="{ mask: mask }">
<view class="loading-wrap">
<view class="loading-css">
<view></view>
<view></view>
<view></view>
<view></view>
<view></view>
<view></view>
<view></view>
<view></view>
</view>
</view>
</view>
</template>
</view>
</template>
<script>
export default {
name: "BetLoading",
props: {
mask: {
type: Boolean,
default: true,
},
},
watch: {
showLoading(val) {
this.$emit("change", val);
},
},
data() {
return {
showLoading: false,
};
},
methods: {
show() {
this.showLoading = true;
},
hide() {
this.showLoading = false;
},
},
};
</script>
<style lang="scss" scoped>
.loading-box {
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
z-index: 999999999;
&.mask {
width: 750rpx;
height: 100vh;
overflow: hidden;
}
.loading-wrap {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 50%;
top: 50%;
z-index: 19;
transform: translate(-50%, -50%);
width: 200rpx;
height: 200rpx;
background: rgba(0, 0, 0, 0.6);
box-shadow: 0 0 10rpx 1px rgba($color: #eadada, $alpha: 0.2);
border-radius: 30rpx;
}
.loading-css {
position: relative;
box-sizing: border-box;
display: block;
font-size: 0;
color: #30f89c;
width: 30rpx;
height: 30rpx;
}
.loading-css,
.loading-css > view {
position: relative;
box-sizing: border-box;
}
.loading-css {
display: block;
font-size: 0;
color: #30f89c;
}
.loading-css.la-dark {
color: #333;
}
.loading-css > view {
display: inline-block;
float: none;
background-color: currentColor;
border: 0 solid currentColor;
}
.loading-css {
width: 64rpx;
height: 64rpx;
}
.loading-css > view {
position: absolute;
top: 50%;
left: 50%;
width: 16rpx;
height: 16rpx;
margin-top: -8rpx;
margin-left: -8rpx;
border-radius: 100%;
animation: ball-spin-clockwise 1s infinite ease-in-out;
}
.loading-css > view:nth-child(1) {
top: 5%;
left: 50%;
animation-delay: -0.875s;
}
.loading-css > view:nth-child(2) {
top: 18.1801948466%;
left: 81.8198051534%;
animation-delay: -0.75s;
}
.loading-css > view:nth-child(3) {
top: 50%;
left: 95%;
animation-delay: -0.625s;
}
.loading-css > view:nth-child(4) {
top: 81.8198051534%;
left: 81.8198051534%;
animation-delay: -0.5s;
}
.loading-css > view:nth-child(5) {
top: 94.9999999966%;
left: 50.0000000005%;
animation-delay: -0.375s;
}
.loading-css > view:nth-child(6) {
top: 81.8198046966%;
left: 18.1801949248%;
animation-delay: -0.25s;
}
.loading-css > view:nth-child(7) {
top: 49.9999750815%;
left: 5.0000051215%;
animation-delay: -0.125s;
}
.loading-css > view:nth-child(8) {
top: 18.179464974%;
left: 18.1803700518%;
animation-delay: 0s;
}
.loading-css.la-sm {
width: 64rpx;
height: 64rpx;
}
.loading-css.la-sm > view {
width: 8rpx;
height: 8rpx;
margin-top: -4rpx;
margin-left: -4rpx;
}
.loading-css.la-2x {
width: 128rpx;
height: 128rpx;
}
.loading-css.la-2x > view {
width: 64rpx;
height: 64rpx;
margin-top: -8px;
margin-left: -8px;
}
.loading-css.la-3x {
width: 192rpx;
height: 192rpx;
}
.loading-css.la-3x > view {
width: 48rpx;
height: 48rpx;
margin-top: -24rpx;
margin-left: -24rpx;
}
@keyframes ball-spin-clockwise {
0%,
100% {
opacity: 1;
transform: scale(1);
}
20% {
opacity: 1;
}
80% {
opacity: 0;
transform: scale(0);
}
}
}
@keyframes ball-circus-position {
50% {
left: 100%;
}
}
@keyframes ball-circus-size {
50% {
transform: scale(0.3, 0.3);
}
}
</style>