ffi
Before Width: | Height: | Size: 654 KiB After Width: | Height: | Size: 654 KiB |
Before Width: | Height: | Size: 538 KiB After Width: | Height: | Size: 538 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6).zip
Normal file
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/BG(1).png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/BG(2).png
Normal file
After Width: | Height: | Size: 538 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/BG.png
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/LOGO.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 65 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/more交互(1).png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/more交互(2).png
Normal file
After Width: | Height: | Size: 612 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/more交互.png
Normal file
After Width: | Height: | Size: 579 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/more默认(1).png
Normal file
After Width: | Height: | Size: 518 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/more默认.png
Normal file
After Width: | Height: | Size: 554 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/三角(1).png
Normal file
After Width: | Height: | Size: 172 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/三角(2).png
Normal file
After Width: | Height: | Size: 181 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/三角.png
Normal file
After Width: | Height: | Size: 172 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/三角形.png
Normal file
After Width: | Height: | Size: 209 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/交互(1).png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/交互.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/人物.png
Normal file
After Width: | Height: | Size: 654 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/关闭按钮.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/图.png
Normal file
After Width: | Height: | Size: 136 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/按钮(1).png
Normal file
After Width: | Height: | Size: 881 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/按钮(2).png
Normal file
After Width: | Height: | Size: 726 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/按钮.png
Normal file
After Width: | Height: | Size: 689 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/提示BG.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/时间轴.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/箭头.png
Normal file
After Width: | Height: | Size: 353 B |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/装饰.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/默认(1).png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
src/assets/img/badge/Badge领取(切图)-0421_slices (6)/默认.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
src/assets/img/badge/left-text.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
src/assets/img/badge/nav-bg.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
src/assets/img/badge/right-text.png
Normal file
After Width: | Height: | Size: 44 KiB |
30
src/components/global/ImageTextModal.vue
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<template>
|
||||||
|
<a-modal :visible="visible" :footer="null" width="800px" title="示例弹框" @cancel="onCancel">
|
||||||
|
<a-row align="middle" class="h-full">
|
||||||
|
<a-col :span="12" class="text-center">
|
||||||
|
<img :src="imageSrc" alt="示例图片" class="max-w-full h-auto" />
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12" class="text-center">
|
||||||
|
<p>{{ textContent }}</p>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { defineEmits } from 'vue'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
visible: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const emit = defineEmits(['update:visible'])
|
||||||
|
|
||||||
|
const onCancel = () => {
|
||||||
|
emit('update:visible', false)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -1,20 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="my-container">
|
<div class="my-container">
|
||||||
<div class="nav">
|
<div class="nav">
|
||||||
<div class="h-16 bg-black-color flex items-center justify-between">
|
<div class="h-[5.625rem] flex items-center justify-between">
|
||||||
<div class="w-14 h-14 ml-5 flex items-center justify-center">
|
<div class="h-38 w-38 ml-5 flex items-center justify-center">
|
||||||
<img
|
<img
|
||||||
src="@/assets/img/home/header-logo.png"
|
src="@/assets/img/home/header-logo.png"
|
||||||
alt="Logo"
|
alt="Logo"
|
||||||
class="w-14 h-14"
|
class="h-38 w-38"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="!chain.logined"
|
v-if="!chain.logined"
|
||||||
class="w-50 mr-6 flex items-center justify-center bg-button-default bg-yellow-300"
|
class="w-[18.75rem] h-[3.75rem] mr-6 flex items-center justify-center bg-button-default bg-yellow-300"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
class="pl-11 pr-11 pb-3 pt-3 text-lg italic text-my-text-color decoration-1"
|
class="text-lg italic text-my-text-color decoration-1"
|
||||||
@click="login"
|
@click="login"
|
||||||
>
|
>
|
||||||
WALLET CONNECT
|
WALLET CONNECT
|
||||||
@ -22,10 +22,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
class="w-50 mr-6 flex items-center justify-center bg-yellow-300"
|
class="w-[18.75rem] h-[3.75rem] mr-6 flex items-center justify-center bg-button-default bg-yellow-300"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
class="pl-11 pr-11 pb-3 pt-3 text-lg italic text-my-text-color decoration-1"
|
class="text-lg italic text-my-text-color decoration-1"
|
||||||
@click="logout"
|
@click="logout"
|
||||||
>
|
>
|
||||||
loginout
|
loginout
|
||||||
@ -34,6 +34,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-top">
|
<div class="content-top">
|
||||||
|
<div class="text-left">
|
||||||
|
<img src="../assets/img/badge/left-text.png" alt="" />
|
||||||
|
</div>
|
||||||
|
<div class="text-right">
|
||||||
|
<img src="../assets/img/badge/right-text.png" alt="" />
|
||||||
|
</div>
|
||||||
<div class="bg"><img src="../assets/img/badge/bg.png" alt="" /></div>
|
<div class="bg"><img src="../assets/img/badge/bg.png" alt="" /></div>
|
||||||
<div class="content mx-auto container pb-60">
|
<div class="content mx-auto container pb-60">
|
||||||
<div class="flex justify-between pt-20 mx-auto w-3/6">
|
<div class="flex justify-between pt-20 mx-auto w-3/6">
|
||||||
@ -65,6 +71,7 @@
|
|||||||
<div><div class="btn mx-auto mt-8">Claim</div></div>
|
<div><div class="btn mx-auto mt-8">Claim</div></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div></div>
|
||||||
<div
|
<div
|
||||||
class="card shadow-md rounded p-5 cards-container"
|
class="card shadow-md rounded p-5 cards-container"
|
||||||
:style="{
|
:style="{
|
||||||
@ -102,7 +109,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center pt-6">
|
<div class="flex justify-center pt-6">
|
||||||
<div class="flex w-2/4 justify-between">
|
<div class="flex w-2/4 justify-between">
|
||||||
<div class="btn-more ml-20">more</div>
|
<div class="btn-more ml-20" @click="handlHero">more</div>
|
||||||
<div class="btn-more mr-20">more</div>
|
<div class="btn-more mr-20">more</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -110,6 +117,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ChainModel></ChainModel>
|
<ChainModel></ChainModel>
|
||||||
|
<image-text-modal v-model:visible="visible"></image-text-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -129,10 +137,12 @@ import { useMouse, useRafFn } from "@vueuse/core";
|
|||||||
import { useParallaxScroll } from "../hooks/useParallaxScroll";
|
import { useParallaxScroll } from "../hooks/useParallaxScroll";
|
||||||
import { useMouseRotation } from "../hooks/useMouseRotation";
|
import { useMouseRotation } from "../hooks/useMouseRotation";
|
||||||
import ChainModel from "../components/home/ChainModel.vue";
|
import ChainModel from "../components/home/ChainModel.vue";
|
||||||
|
import ImageTextModal from "../components/global/ImageTextModal.vue";
|
||||||
|
|
||||||
const chain = useChainStore();
|
const chain = useChainStore();
|
||||||
const scrollOffset = ref("0%");
|
const scrollOffset = ref("0%");
|
||||||
const parallaxFactor = 0.135; // 视差滚动系数,可以根据需要调整
|
const parallaxFactor = 0.135; // 视差滚动系数,可以根据需要调整
|
||||||
|
const visible = ref(false);
|
||||||
async function login(event) {
|
async function login(event) {
|
||||||
if (!chain.logined) {
|
if (!chain.logined) {
|
||||||
await chain.chainManager.login();
|
await chain.chainManager.login();
|
||||||
@ -145,7 +155,9 @@ const logout = async () => {
|
|||||||
|
|
||||||
chain.logined = chain.chainManager.isLogined;
|
chain.logined = chain.chainManager.isLogined;
|
||||||
};
|
};
|
||||||
|
const handlHero = () => {
|
||||||
|
visible.value = true;
|
||||||
|
};
|
||||||
const handleScroll = () => {
|
const handleScroll = () => {
|
||||||
const currentScrollTop =
|
const currentScrollTop =
|
||||||
window.pageYOffset || document.documentElement.scrollTop;
|
window.pageYOffset || document.documentElement.scrollTop;
|
||||||
@ -186,14 +198,15 @@ onBeforeUnmount(() => {
|
|||||||
transition: transform 0.5s ease-out;
|
transition: transform 0.5s ease-out;
|
||||||
}
|
}
|
||||||
.nav {
|
.nav {
|
||||||
background: url(../assets/img/badge/);
|
background: url("../assets/img/badge/nav-bg.png") no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
.content-top {
|
.content-top {
|
||||||
position: relative;
|
position: relative;
|
||||||
.bg {
|
.bg {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: -10px;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
@ -203,6 +216,16 @@ onBeforeUnmount(() => {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.text-left {
|
||||||
|
position: absolute;
|
||||||
|
left: 85px;
|
||||||
|
bottom: 30px;
|
||||||
|
}
|
||||||
|
.text-right {
|
||||||
|
position: absolute;
|
||||||
|
right: 85px;
|
||||||
|
top: 30px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.item-left {
|
.item-left {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
@ -341,6 +364,10 @@ onBeforeUnmount(() => {
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
|
font-size: 22px;
|
||||||
|
font-family: "Poppins";
|
||||||
|
font-weight: bold;
|
||||||
|
color: #34290a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-button-default:hover {
|
.bg-button-default:hover {
|
||||||
@ -349,5 +376,9 @@ onBeforeUnmount(() => {
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
box-shadow: 0 0 2px #ffff00, 0 0 4px #ffff00, 0 0 2px #ffff00, 0 0 2px #ffff00;
|
box-shadow: 0 0 2px #ffff00, 0 0 4px #ffff00, 0 0 2px #ffff00, 0 0 2px #ffff00;
|
||||||
|
font-size: 22px;
|
||||||
|
font-family: "Poppins";
|
||||||
|
font-weight: bold;
|
||||||
|
color: #34290a;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|