84 lines
1.5 KiB
Vue
84 lines
1.5 KiB
Vue
<script setup>
|
|
import { ref, onMounted } from "vue";
|
|
const props = defineProps({
|
|
type: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
bgColor: {
|
|
type: String,
|
|
default: "#050b19",
|
|
},
|
|
});
|
|
const capsuleHeight = ref(0);
|
|
onMounted(() => {
|
|
const menuBtnInfo = uni.getMenuButtonBoundingClientRect();
|
|
capsuleHeight.value = menuBtnInfo.top + 50 - 9;
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<view class="background" :style="{ backgroundColor: bgColor }">
|
|
<image
|
|
class="bg-image"
|
|
v-if="type === 0"
|
|
src="../static/app-bg.png"
|
|
mode="widthFix"
|
|
/>
|
|
<image
|
|
class="bg-image"
|
|
v-if="type === 1"
|
|
src="../static/app-bg2.png"
|
|
mode="widthFix"
|
|
/>
|
|
<image
|
|
class="bg-image"
|
|
v-if="type === 2"
|
|
src="../static/app-bg3.png"
|
|
:style="{ height: capsuleHeight + 'px' }"
|
|
/>
|
|
<image
|
|
class="bg-image"
|
|
v-if="type === 3"
|
|
src="../static/app-bg4.png"
|
|
mode="widthFix"
|
|
/>
|
|
<image
|
|
class="bg-image"
|
|
v-if="type === 4"
|
|
src="../static/app-bg5.png"
|
|
mode="widthFix"
|
|
/>
|
|
<view class="bg-overlay" v-if="type === 0"></view>
|
|
</view>
|
|
</template>
|
|
|
|
<style scoped>
|
|
.background {
|
|
position: fixed;
|
|
width: 100%;
|
|
height: 100%;
|
|
left: 0;
|
|
top: 0;
|
|
z-index: -1;
|
|
}
|
|
|
|
.bg-image {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.bg-overlay {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
left: 0;
|
|
top: 0;
|
|
background: linear-gradient(
|
|
to bottom,
|
|
rgba(26, 26, 26, 0.2),
|
|
rgba(0, 0, 0, 0.2)
|
|
);
|
|
}
|
|
</style>
|