wctdreamlandwebsite-front/components/Home_load.vue

173 lines
3.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<OutMask :bg="'loading'">
<div class="loadContent">
<div class="imgBox">
<div class="left" :class="type" :style="{ width: imgWidth }">
<!-- <img src="../assets/mobile/loading_line.png" alt="" /> -->
</div>
<div class="right" :class="type" :style="{ width: imgWidth }">
<!-- <img src="../assets/mobile/loading_line.png" alt="" /> -->
</div>
<img
class="load_img"
:class="type"
src="@/assets/mobile/loading.png"
alt=""
/>
</div>
<p class="loadText">{{ loading }} %</p>
</div>
</OutMask>
</template>
<script>
export default {
components: {
OutMask: () => import("./outMask.vue"),
},
props: {
bg: {
type: String,
default: "",
},
loading: {
type: Number,
default: 0,
},
type: {
type: String,
default: "",
},
},
data() {
return {
content: "",
imgWidth: 0,
title: "",
};
},
watch: {
loading: {
handler(val, oldName) {
if (this.type === "pc") {
// this.imgWidth = ((val / 100) * 884) / 100 + "rem";
this.imgWidth = (val / 100) * 46 + "vw";
} else {
this.imgWidth = ((val / 100) * 310) / 100 + "rem";
}
},
// 开启深度监听只要obj中的任何一个属性发生改变都会触发相应的代码
deep: true,
immediate: true,
},
},
mounted() {
console.log(this.loading);
// this.imgWidth = (this.loading / 100) * 884 + "px";
},
methods: {
closeArgument() {
this.$emit("closeArgument");
},
// loadNumber() {
// this.intervalId = setInterval(() => {
// if (this.percent > this.loading) {
// this.loading += 1;
// console.log(this.loading);
// } else {
// window.clearInterval(this.intervalId);
// this.intervalId = null;
// setTimeout(() => {
// // this.showloading = false;
// }, 20);
// }
// }, 10);
// },
},
};
</script>
<style lang="scss">
.loadContent {
width: 100%;
height: 100%;
text-align: center;
display: flex;
justify-content: center;
align-self: center;
flex-direction: column;
.imgBox {
width: 100%;
margin: 0 auto;
position: relative;
.left,
.right {
position: absolute;
width: 88px;
height: auto;
bottom: 20px;
height: 3px;
background-image: linear-gradient(to left, #d89c85, #f4d1bf);
&.pc {
bottom: 12px;
img {
height: 100%;
}
}
&::after {
content: "";
position: absolute;
top: 50%;
width: 46px;
height: 44px;
background: url("@/assets/mobile/load_star.png");
background-size: contain;
background-position: center;
background-repeat: no-repeat;
left: 0;
transform: translate(-48%, -50%);
}
img {
width: 100%;
// height: 100%;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
}
.left {
left: 0;
// transform: rotate(180deg);
background-image: linear-gradient(to right, #d89c85, #f4d1bf);
&::after {
right: 0;
left: auto;
transform: translate(45%, -50%);
}
}
.right {
right: 0;
}
}
.load_img {
width: 136px;
// width: 135px;
&.pc {
width: 154px;
// width: 153px;
}
}
.loadText {
font-size: 35px;
text-align: center;
color: #eeccae;
}
}
</style>