This commit is contained in:
huangjinming 2023-02-22 15:25:00 +08:00
parent 26b8206abf
commit 241fd941f6
24 changed files with 263 additions and 127 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@ -0,0 +1,82 @@
<template>
<button
class="background-switch-button"
:style="buttonStyle"
@mouseover="handleMouseOver"
@mouseleave="handleMouseLeave"
>
<slot></slot>
</button>
</template>
<script setup>
import { ref, computed, defineProps } from "vue";
const props = defineProps({
defaultImage: {
type: String,
required: true,
},
hoverImage: {
type: String,
required: true,
},
});
const isHover = ref(false);
const buttonStyle = computed(() => {
return {
backgroundImage: isHover.value
? `url(${props.hoverImage})`
: `url(${props.defaultImage})`,
};
});
const handleMouseOver = () => {
isHover.value = true;
};
const handleMouseLeave = () => {
isHover.value = false;
};
</script>
<style lang="scss" scoped>
.background-switch-button {
position: relative;
padding: 10px 20px;
width: 170px;
height: 60px;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
border: 1px solid #333;
overflow: hidden;
transition: background-image 0.3s ease-in-out;
}
.background-switch-button::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
transform: scaleX(0);
z-index: 0;
transform-origin: center;
transition: transform 0.3s ease-in-out;
}
.background-switch-button:hover {
background-color: transparent;
}
.background-switch-button:hover::before {
transform: scaleX(1);
}
</style>

View File

@ -46,7 +46,7 @@
<!-- <div class="chip-top"></div> --> <!-- <div class="chip-top"></div> -->
</div> </div>
<div class="chip-bg"> <div class="chip-bg">
<img src="../assets/img/home/chip/chip-bg.jpg" alt="" /> <img src="../assets/img/home/weapon-bg.png" alt="" />
</div> </div>
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
HERO HERO
</div> </div>
<div class="hero-bg"> <div class="hero-bg">
<img src="../assets/img/home/hero-bg.jpg" alt="" /> <img src="../assets/img/home/weapon-bg.png" alt="" />
</div> </div>
</div> </div>
<div class="centent-right"></div> <div class="centent-right"></div>

View File

@ -2,7 +2,7 @@
<vue3dLoader <vue3dLoader
:filePath="filePath" :filePath="filePath"
height="400" height="400"
width="550" width="1250"
:controlsOptions="{ :controlsOptions="{
enablePan:false, enablePan:false,
enableZoom:false, enableZoom:false,

View File

@ -23,7 +23,7 @@
<WeaponSwiper></WeaponSwiper> <WeaponSwiper></WeaponSwiper>
</div> </div>
<div class="weapon-bg"> <div class="weapon-bg">
<img src="../assets/img/home/weapon-bg.jpg" alt="" /> <img src="../assets/img/home/weapon-bg.png" alt="" />
</div> </div>
</div> </div>
</div> </div>

View File

@ -13,8 +13,8 @@
}" }"
> >
<SwiperSlide v-for="(slideContent, index) in weaponList" :key="index"> <SwiperSlide v-for="(slideContent, index) in weaponListBig" :key="index">
<img class="weapon_big_image" :src="slideContent.img" /> <Weapon3dLoader :filePath="slideContent.url"></Weapon3dLoader>
</SwiperSlide> </SwiperSlide>
</swiper> </swiper>
</div> </div>
@ -56,6 +56,7 @@
import { ref, reactive } from "vue"; import { ref, reactive } from "vue";
import { Thumbs, FreeMode, Navigation } from "swiper"; import { Thumbs, FreeMode, Navigation } from "swiper";
import { Swiper, SwiperSlide } from "swiper/vue"; import { Swiper, SwiperSlide } from "swiper/vue";
import Weapon3dLoader from "./Weapon3dLoader.vue";
import "swiper/css"; import "swiper/css";
import "swiper/css/navigation"; import "swiper/css/navigation";
import "swiper/css/thumbs"; import "swiper/css/thumbs";
@ -70,7 +71,15 @@ const weaponList = reactive([
{ id: 6, img: require("../assets/img/home/weapon/006.png") }, { id: 6, img: require("../assets/img/home/weapon/006.png") },
{ id: 7, img: require("../assets/img/home/weapon/007.png") }, { id: 7, img: require("../assets/img/home/weapon/007.png") },
]); ]);
const weaponListBig = reactive([
{ id: 1, url: '/70001.gltf' },
{ id: 2, url: '/70002.gltf' },
{ id: 3, url: '/70003.gltf' },
{ id: 4, url: '/70004.gltf' },
{ id: 5, url: '/70005.gltf' },
{ id: 6, url: '/70006.gltf' },
{ id: 7, url: '/70007.gltf' },
]);
const modules = [FreeMode, Navigation, Thumbs]; const modules = [FreeMode, Navigation, Thumbs];
const weaponSwiper = ref(null); const weaponSwiper = ref(null);
const weaponThumbsSwiper = ref(null); const weaponThumbsSwiper = ref(null);

View File

@ -53,26 +53,29 @@
<div class="gameplay-img"> <div class="gameplay-img">
<img src="../assets/img/home/gameplay.png" alt="" /> <img src="../assets/img/home/gameplay.png" alt="" />
</div> </div>
<div class="pve">
<div
:class="isPveTab == true ? 'pve-left-active' : 'pve-left'"
@click="handTabActive(true)"
>
<div :class="isPveTab == true ? 'in-rect-active' : 'in-rect'">
<!-- PVP -->
</div>
</div>
<div
:class="isPveTab == false ? 'pve-right-active' : 'pve-right'"
@click="handTabActive(false)"
>
<div :class="isPveTab == false ? 'in-rect-active' : 'in-rect'">
<!-- PVE -->
</div>
</div>
</div>
<div class="gameplay-content"> <div class="gameplay-content">
<div class="gameplay-right"> <div class="gameplay-right">
<div class="pve">
<div
:class="isPveTab == true ? 'pve-left-active' : 'pve-left'"
@click="handTabActive(true)"
>
<div :class="isPveTab == true ? 'in-rect-active' : 'in-rect'">
<!-- PVP -->
</div>
</div>
<div
:class="isPveTab == false ? 'pve-right-active' : 'pve-right'"
@click="handTabActive(false)"
>
<div
:class="isPveTab == false ? 'in-rect-active' : 'in-rect'"
>
<!-- PVE -->
</div>
</div>
</div>
<div class="pve-content"> <div class="pve-content">
<div class="slogan"> <div class="slogan">
Each battle contains 40 players by matching through the ELO Each battle contains 40 players by matching through the ELO
@ -106,7 +109,7 @@
<script setup> <script setup>
import { ref, onMounted } from "vue"; import { ref, onMounted } from "vue";
import BgSwitchButton from "../components/BgSwitchButton.vue";
const Y1 = ref(0); const Y1 = ref(0);
const ratio = ref(0.2); // const ratio = ref(0.2); //
const isPveTab = ref(false); const isPveTab = ref(false);
@ -159,15 +162,14 @@ function handleScroll() {
} }
} }
.cebg-game { .cebg-game {
font-size: 240px; font-size: 180px;
font-family: "BigJohn"; font-family: "Big John";
font-weight: 400;
color: #020304; color: #16252d;
line-height: 30px;
opacity: 0.5; opacity: 0.5;
position: absolute; position: absolute;
text-transform: uppercase; text-transform: uppercase;
top: 45px; top: -85px;
right: 0; right: 0;
z-index: 1; z-index: 1;
@ -180,12 +182,11 @@ function handleScroll() {
.gameplay-name { .gameplay-name {
position: absolute; position: absolute;
text-transform: uppercase; text-transform: uppercase;
top: 400px; top: 500px;
right: 0; left: 0;
z-index: 1; z-index: 1;
font-size: 240px; font-size: 180px;
font-family: "BigJohn"; font-family: "BigJohn";
color: #3e7ea6; color: #3e7ea6;
line-height: 30px; line-height: 30px;
opacity: 0.4; opacity: 0.4;
@ -197,8 +198,8 @@ function handleScroll() {
.content { .content {
width: 1440px; width: 1440px;
padding-top: 152px; padding-top: 62px;
padding-bottom: 226px; padding-bottom:168px;
margin: 0 auto; margin: 0 auto;
display: flex; display: flex;
// align-items: center; // align-items: center;
@ -210,7 +211,7 @@ function handleScroll() {
display: flex; display: flex;
.monster { .monster {
position: absolute; position: absolute;
top: 157px; top: 20px;
left: -220px; left: -220px;
z-index: 2; z-index: 2;
width: 584px; width: 584px;
@ -223,8 +224,8 @@ function handleScroll() {
.content-right { .content-right {
z-index: 2; z-index: 2;
width: 792px; width: 792px;
padding-left: 484px; // padding-left: 484px;
// margin: 0 auto; margin: 0 auto;
padding-bottom: 202px; padding-bottom: 202px;
text-align: center; text-align: center;
.title { .title {
@ -244,10 +245,10 @@ function handleScroll() {
// height: 168px; // height: 168px;
margin: 0 auto; margin: 0 auto;
text-align: center; text-align: center;
font-size: 18px; font-size: 16px;
font-family: Arial; font-family: Arial;
font-weight: bold; font-weight: bold;
color: #daf1fa; color: #ffffff;
} }
.what-cebg-img { .what-cebg-img {
width: 100%; width: 100%;
@ -269,13 +270,11 @@ function handleScroll() {
flex-direction: column; flex-direction: column;
// justify-content: space-between; // justify-content: space-between;
.title { .title {
width: 544px; // width: 544px;
// width: 221px; font-size: 44px;
// height: 29px;
font-size: 88px;
font-family: "Big John"; font-family: "Big John";
font-weight: 400;
color: #1c3045; color: #010001;
} }
.gameplay-img { .gameplay-img {
width: 50%; width: 50%;
@ -293,81 +292,134 @@ function handleScroll() {
// justify-content: flex-end; // justify-content: flex-end;
.pve-left { .pve-left {
margin-top: 30px; margin-top: 30px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
line-height: 44px;
width: 196px; width: 196px;
height: 62px; height: 62px;
font-size: 28px; position: relative;
font-family: "MEurostile";
margin-right: 30px; margin-right: 30px;
color: #263641; color: #263641;
cursor: pointer; cursor: pointer;
padding: 2px; // background-image: url("../assets/img/home/pve-btn.png");
background: url("../assets/img/home/pve-btn.png") no-repeat; background-position: center;
background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover;
// border: 1px solid #333;
overflow: hidden;
transition: background-image 0.3s ease-in-out;
}
.pve-left:hover {
// background-image: none;
}
.pve-left::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url("../assets/img/home/pve-btn-active.png");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
transform: scaleX(0);
transform-origin: center;
transition: transform 0.3s ease-in-out;
}
.pve-left:hover::before {
transform: scaleX(1);
} }
.pve-left-active { .pve-left-active {
margin-top: 30px; margin-top: 30px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
line-height: 44px;
width: 196px; width: 196px;
height: 62px; height: 62px;
font-size: 28px;
font-family: "MEurostile";
margin-right: 30px; margin-right: 30px;
color: #263641; position: relative;
cursor: pointer; cursor: pointer;
padding: 2px; // background-image: url("../assets/img/home/pve-btn-active.png");
background: url("../assets/img/home/pve-btn-active.png") no-repeat; background-position: center;
background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
// .in-rect-active { background-size: cover;
// background: url('../assets/img/home/PVP.png')no-repeat; overflow: hidden;
// background-size: contain; transition: background-image 0.3s ease-in-out;
// } }
.pve-left-active::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url("../assets/img/home/pve-btn.png");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
transform: scaleX(0);
transform-origin: center;
transition: transform 0.3s ease-in-out;
}
.pve-left-active:hover::before {
transform: scaleX(1);
} }
.pve-right { .pve-right {
margin-top: 30px; margin-top: 30px;
display: flex;
cursor: pointer;
align-items: center;
justify-content: center;
font-size: 28px;
font-family: "MEurostile";
color: #263641;
width: 196px; width: 196px;
height: 62px; height: 62px;
padding: 2px; position: relative;
background: url("../assets/img/home/pvp-btn.png") no-repeat; background-image: url("../assets/img/home/pvp-btn.png");
background-size: contain; background-position: center;
// transform: rotate(180deg);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover;
// border: 1px solid #333;
overflow: hidden;
transition: background-image 0.3s ease-in-out;
}
.pve-right::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url("../assets/img/home/pvp-btn-active.png");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
transform: scaleX(0);
transform-origin: center;
transition: transform 0.3s ease-in-out;
}
.pve-right:hover::before {
transform: scaleX(1);
} }
.pve-right-active { .pve-right-active {
margin-top: 30px; margin-top: 30px;
display: flex;
cursor: pointer;
align-items: center;
justify-content: center;
font-size: 28px;
font-family: "MEurostile";
color: #263641;
width: 196px; width: 196px;
height: 62px; height: 62px;
padding: 2px; position: relative;
background: url("../assets/img/home/pvp-btn-active.png") no-repeat; background-image: url("../assets/img/home/pvp-btn.png");
background-size: contain; background-position: center;
// transform: rotate(180deg);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover;
overflow: hidden;
transition: background-image 0.3s ease-in-out;
}
.pve-right-active::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url("../assets/img/home/pvp-btn-active.png");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
transform: scaleX(0);
transform-origin: center;
transition: transform 0.3s ease-in-out;
}
.pve-right-active:hover::before {
transform: scaleX(1);
} }
} }
.gameplay-content { .gameplay-content {
@ -375,8 +427,8 @@ function handleScroll() {
// background: #59a2d0; // background: #59a2d0;
.gameplay-left { .gameplay-left {
.pve-img { .pve-img {
width: 732px; width: 710px;
height: 336px; height: 400px;
} }
} }
.gameplay-right { .gameplay-right {

View File

@ -1,15 +1,15 @@
<template> <template>
<div class="container"> <div class="container">
<div class="hero-left"> <div class="hero-left">
<div class="hero-name">HERO</div> <!-- <div class="hero-name">HERO</div> -->
<div class="hero-boder"> <div class="hero-boder">
<img src="../assets/img/home/hero/hero-boder.png" alt="" /> <!-- <img src="../assets/img/home/hero/hero-boder.png" alt="" /> -->
</div> </div>
<div class="hero-slogan"> <div class="hero-slogan">
CEBG has more than 8 heroes for players to choose, and each of them has <!-- CEBG has more than 8 heroes for players to choose, and each of them has
a distinguishing design, skills, and gameplay. All the entry-level a distinguishing design, skills, and gameplay. All the entry-level
heroes are free for all the players, so there is no threshold to this heroes are free for all the players, so there is no threshold to this
game. game. -->
<XyzTransitionGroup class="item-group" xyz="fade down-100% back-5"> <XyzTransitionGroup class="item-group" xyz="fade down-100% back-5">
<div <div
:class=" :class="
@ -165,12 +165,12 @@
<img class="hero_big_image" :src="slideContent.img" /> <img class="hero_big_image" :src="slideContent.img" />
</SwiperSlide> </SwiperSlide>
</swiper> </swiper>
<div <!-- <div
class="hero-bg" class="hero-bg"
:style="{ transform: 'rotate(' + rotate + 'deg)' }" :style="{ transform: 'rotate(' + rotate + 'deg)' }"
> >
<img src="../assets/img/home/hero-swiper-bg.png" alt="" /> <img src="../assets/img/home/hero-swiper-bg.png" alt="" />
</div> </div> -->
<div <div
class="swiper-btn2-prev" class="swiper-btn2-prev"
:class="activeIndex == 0 ? 'swiper-button-disabled' : ''" :class="activeIndex == 0 ? 'swiper-button-disabled' : ''"
@ -301,33 +301,33 @@ function test(index, sc) {
color: #1c3045; color: #1c3045;
} }
.hero-boder { .hero-boder {
padding-top: 28px; // padding-top: 28px;
padding-bottom: 29px; // padding-bottom: 29px;
width: 649px; // width: 649px;
height: 25px; // height: 25px;
} }
.hero-slogan { .hero-slogan {
width: 617px; // width: 617px;
height: 82px; // height: 82px;
margin-left: 20px; // margin-left: 20px;
font-size: 18px; // font-size: 18px;
font-family: Arial; // font-family: Arial;
font-weight: bold; // font-weight: bold;
color: #1d2931; // color: #1d2931;
line-height: 32px; // line-height: 32px;
// padding-bottom: 244px; // padding-bottom: 244px;
} }
.miffy-container { .miffy-container {
background: url("../assets/img/home/miffy-bg.png") no-repeat; background: url("../assets/img/home/miffy-bg.png") no-repeat;
background-size: contain; background-size: contain;
opacity: 0; opacity: 0;
top: 890px; top: 590px;
position: absolute; position: absolute;
// transform: translateY(100px) translateZ(0px); // transform: translateY(100px) translateZ(0px);
} }
.miffy-container-active { .miffy-container-active {
opacity: 1; opacity: 1;
top: 890px; top: 590px;
position: absolute; position: absolute;
transform: none; transform: none;
} }