修改首页各分辨率下的样式
@ -5,7 +5,8 @@
|
|||||||
<link rel="stylesheet"
|
<link rel="stylesheet"
|
||||||
href="https://fonts.googleapis.com/css?family=Oxanium">
|
href="https://fonts.googleapis.com/css?family=Oxanium">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
|
||||||
|
<!-- <meta name="viewport" content="width=device-width,initial-scale=1.0">-->
|
||||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||||
<script src="assets/libs/spine-webgl.js"></script>
|
<script src="assets/libs/spine-webgl.js"></script>
|
||||||
|
BIN
src/assets/main/card/aoi.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
src/assets/main/card/astral.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
src/assets/main/card/canoe.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
src/assets/main/card/card_bg.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
src/assets/main/card/card_border.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
src/assets/main/card/class_0.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
src/assets/main/card/class_1.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
src/assets/main/card/class_2.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
src/assets/main/card/dragonscale.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
src/assets/main/card/hill.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
src/assets/main/card/icon_buy.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
src/assets/main/card/kurosawa.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
src/assets/main/card/lazar.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
src/assets/main/card/mariana.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
src/assets/main/card/miffy.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
src/assets/main/card/n_aoi.png
Normal file
After Width: | Height: | Size: 187 KiB |
BIN
src/assets/main/card/n_astral.png
Normal file
After Width: | Height: | Size: 134 KiB |
BIN
src/assets/main/card/n_canoe.png
Normal file
After Width: | Height: | Size: 129 KiB |
BIN
src/assets/main/card/n_dragonscale.png
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
src/assets/main/card/n_hill.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
src/assets/main/card/n_kurosawa.png
Normal file
After Width: | Height: | Size: 142 KiB |
BIN
src/assets/main/card/n_lazar.png
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
src/assets/main/card/n_mariana.png
Normal file
After Width: | Height: | Size: 129 KiB |
BIN
src/assets/main/card/n_miffy.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
src/assets/main/card/n_yamada.png
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
src/assets/main/card/name_bg.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
src/assets/main/card/price_bg.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
src/assets/main/card/yamada.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
@ -1,13 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<img class="bg-img" src="@/assets/main/p3/bg_card.png">
|
<img class="bg-img" src="@/assets/main/card/card_border.png">
|
||||||
<div class="anim-border">
|
<div class="anim-border">
|
||||||
<spine-view class="hero-anim" :data="data" :key="data.id"></spine-view>
|
<spine-view class="hero-anim" :data="data" :key="data.id" v-if="data.type===1"></spine-view>
|
||||||
<img class="corner" src="@/assets/main/p3/bg_card_corner.png">
|
<img class="card-main-img" :src="require('@/assets/main/card/' + data.skelName+'.png')" v-if="data.type===0"/>
|
||||||
|
<img class="name-img" :src="require('@/assets/main/card/'+data.name+'.png')">
|
||||||
<div class="info-div">
|
<div class="info-div">
|
||||||
<img class="name-img" src="@/assets/main/p3/racoon.png">
|
<img class='buy-icon' src="@/assets/main/card/icon_buy.png"/>
|
||||||
<span class="index-label">#01</span>
|
<div class="price-label"><span>{{data.price}}</span></div>
|
||||||
<span class="price-label">100 USDT</span>
|
</div>
|
||||||
|
<div class="class-div">
|
||||||
|
<img :src="require('@/assets/main/card/class_'+data.class+'.png')">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -37,11 +40,9 @@ export default class extends Vue {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.card{
|
@mixin resize($scale) {
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.bg-img {
|
.bg-img {
|
||||||
width: 297px;
|
width: 297px/$scale;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
@ -50,57 +51,128 @@ export default class extends Vue {
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
.anim-border {
|
.anim-border {
|
||||||
width: 287px;
|
width: 287px/$scale;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
height: 465px;
|
height: 465px/$scale;
|
||||||
margin-left: 13px;
|
margin-left: 13px/$scale;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
.hero-anim{
|
||||||
|
width: 500px/$scale;
|
||||||
|
height: 700px/$scale;
|
||||||
|
position: absolute;
|
||||||
|
left: -100px/$scale;
|
||||||
|
top: -100px/$scale;
|
||||||
|
right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.card-main-img {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
max-height: 360px/$scale;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-div {
|
||||||
|
background-image: url('~@/assets/main/card/name_bg.png');
|
||||||
|
width: 297px/$scale;
|
||||||
|
height: 115px/$scale;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10px/$scale;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.class-div{
|
||||||
|
position: absolute;
|
||||||
|
top: 90px/$scale;
|
||||||
|
right: 0;
|
||||||
|
width: 42px/$scale;
|
||||||
|
height: 42px/$scale;
|
||||||
|
}
|
||||||
|
.class-div img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.name-img {
|
||||||
|
height: 39px/$scale;
|
||||||
|
width: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 9px/$scale;
|
||||||
|
bottom: 100px/$scale;
|
||||||
|
}
|
||||||
|
.price-label {
|
||||||
|
color: black;
|
||||||
|
height: 29px/$scale;
|
||||||
|
font-weight: bold;
|
||||||
|
width: 145px/$scale;
|
||||||
|
background-image: url('~@/assets/main/card/price_bg.png');
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-right: 40px/$scale;
|
||||||
|
margin-bottom: 10px/$scale;
|
||||||
|
}
|
||||||
|
.price-label span {
|
||||||
|
font-size: 20px/$scale;
|
||||||
|
}
|
||||||
|
.buy-icon {
|
||||||
|
width: 44px/$scale;
|
||||||
|
height: 52px/$scale;
|
||||||
|
margin-left: 40px/$scale;
|
||||||
|
margin-bottom: 12px/$scale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
@include resize($scale: 1.4);
|
||||||
|
.price-label {
|
||||||
|
color: black;
|
||||||
|
font-size: 16px;
|
||||||
|
margin-top: 3px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.corner {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
@include resize($scale: 1)
|
||||||
|
}
|
||||||
|
@media (max-width: 415px) {
|
||||||
|
@include resize($scale: 2.0);
|
||||||
|
|
||||||
|
.corner {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
.corner {
|
.corner {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
}
|
||||||
.hero-anim{
|
|
||||||
width: 500px;
|
|
||||||
height: 700px;
|
|
||||||
position: absolute;
|
|
||||||
left: -100px;
|
|
||||||
top: -100px;
|
|
||||||
right: 0;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
.info-div {
|
|
||||||
background-image: url('~@/assets/main//p3/btn_name.png');
|
|
||||||
width: 270px;
|
|
||||||
height: 115px;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 10px;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
margin-right: auto;
|
|
||||||
margin-left: auto;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
.name-img {
|
|
||||||
height: 39px;
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
.index-label {
|
.index-label {
|
||||||
color: #8FFCEF;
|
color: #8FFCEF;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-shadow: 0 0 10px #8FFCEF,0 0 20px #8FFCEF,0 0 30px #8FFCEF,0 0 40px #8FFCEF;
|
text-shadow: 0 0 10px #8FFCEF,0 0 20px #8FFCEF,0 0 30px #8FFCEF,0 0 40px #8FFCEF;
|
||||||
}
|
}
|
||||||
.price-label {
|
|
||||||
color: black;
|
|
||||||
font-size: 24px;
|
|
||||||
margin-top: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -38,21 +38,116 @@ import { ISpineData } from '@/utils/SpineRender'
|
|||||||
})
|
})
|
||||||
export default class extends Vue {
|
export default class extends Vue {
|
||||||
private heros: ISpineData[] = [
|
private heros: ISpineData[] = [
|
||||||
{ id: 'hero_n1', skelName: 'pic_hero2', animName: 'animation', repeat: true, scale: 1.4 },
|
{
|
||||||
{ id: 'hero_n2', skelName: 'pic_hero3', animName: 'animation', repeat: true, scale: 1.4 },
|
id: 'card_0',
|
||||||
{ id: 'hero_n3', skelName: 'pic_hero9', animName: 'animation', repeat: true, scale: 1.4 },
|
price: '100 USDT',
|
||||||
{ id: 'hero_n4', skelName: 'pic_hero1', animName: 'animation', repeat: true, scale: 1.4 },
|
name: 'aoi',
|
||||||
{ id: 'hero_n5', skelName: 'pic_hero10', animName: 'animation', repeat: true, scale: 1.4 }
|
skelName: 'pic_hero3',
|
||||||
]
|
type: 1,
|
||||||
|
class: 0,
|
||||||
|
repeat: true,
|
||||||
|
scale: 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_1',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'yamada',
|
||||||
|
skelName: 'pic_hero2',
|
||||||
|
type: 1,
|
||||||
|
class: 0,
|
||||||
|
repeat: true,
|
||||||
|
scale: 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_2',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'lazar',
|
||||||
|
skelName: 'pic_hero9',
|
||||||
|
type: 1,
|
||||||
|
class: 1,
|
||||||
|
repeat: true,
|
||||||
|
scale: 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_3',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'hill',
|
||||||
|
skelName: 'pic_hero1',
|
||||||
|
type: 1,
|
||||||
|
class: 2,
|
||||||
|
repeat: true,
|
||||||
|
scale: 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_4',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'kurosawa',
|
||||||
|
skelName: 'pic_hero10',
|
||||||
|
type: 1,
|
||||||
|
class: 1,
|
||||||
|
repeat: true,
|
||||||
|
scale: 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_5',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'canoe',
|
||||||
|
skelName: 'n_canoe',
|
||||||
|
type: 0,
|
||||||
|
class: 0,
|
||||||
|
repeat: true,
|
||||||
|
scale: 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_6',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'miffy',
|
||||||
|
skelName: 'n_miffy',
|
||||||
|
type: 0,
|
||||||
|
class: 0,
|
||||||
|
repeat: true,
|
||||||
|
scale: 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_7',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'dragonscale',
|
||||||
|
skelName: 'n_dragonscale',
|
||||||
|
type: 0,
|
||||||
|
class: 2,
|
||||||
|
repeat: true,
|
||||||
|
scale: 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_8',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'astral',
|
||||||
|
skelName: 'n_astral',
|
||||||
|
type: 0,
|
||||||
|
class: 2,
|
||||||
|
repeat: true,
|
||||||
|
scale: 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'card_9',
|
||||||
|
price: '100 USDT',
|
||||||
|
name: 'mariana',
|
||||||
|
skelName: 'n_mariana',
|
||||||
|
type: 0,
|
||||||
|
class: 2,
|
||||||
|
repeat: true,
|
||||||
|
scale: 1.4
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
private cardDatas: ISpineData[][] = []
|
private cardDatas: ISpineData[][] = [];
|
||||||
private currentPage = 0
|
private currentPage = 0;
|
||||||
private totalPage = 1
|
private totalPage = 1;
|
||||||
private pageSize = 4
|
private pageSize = 4;
|
||||||
private scrollWidth = 100
|
private scrollWidth = 100;
|
||||||
private scrollLeft = 0
|
private scrollLeft = 0;
|
||||||
private scrolling = false
|
private scrolling = false;
|
||||||
private scrollTime = 1
|
private scrollTime = 1;
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
let count = 0
|
let count = 0
|
||||||
@ -63,7 +158,7 @@ export default class extends Vue {
|
|||||||
if (count++ < this.pageSize) {
|
if (count++ < this.pageSize) {
|
||||||
datas.push(this.heros[i])
|
datas.push(this.heros[i])
|
||||||
} else {
|
} else {
|
||||||
count = 0
|
count = 1
|
||||||
this.cardDatas.push(datas)
|
this.cardDatas.push(datas)
|
||||||
datas = []
|
datas = []
|
||||||
datas.push(this.heros[i])
|
datas.push(this.heros[i])
|
||||||
@ -136,58 +231,155 @@ export default class extends Vue {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@mixin resize($scale) {
|
||||||
.nft-list {
|
.nft-list {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
height: 766px;
|
height: 650px/$scale;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-container {
|
.list-container {
|
||||||
width: 80vw;
|
width: 80vw;
|
||||||
height: 570px;
|
height: 570px/$scale;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-content {
|
.scroll-content {
|
||||||
display: flex;
|
display: flex;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-container {
|
.card-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 80vw;
|
width: 80vw;
|
||||||
|
justify-content: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
width: 320px;
|
width: 320px/$scale;
|
||||||
height: 550px;
|
height: 520px/$scale;
|
||||||
flex: 0 0 auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.action-bar {
|
.action-bar {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 90vw;
|
width: 100vw;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-btn {
|
.right-btn {
|
||||||
transform: rotateY(180deg);
|
transform: rotateY(180deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-ctrl {
|
.page-ctrl {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-icon {
|
.page-icon {
|
||||||
height: 45px;
|
height: 45px/$scale;
|
||||||
width: 221px;
|
width: 221px/$scale;
|
||||||
background-image: url('~@/assets/main/p3/icon_deselect.png');
|
background-image: url('~@/assets/main/p3/icon_deselect.png');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-icon.selected {
|
.page-icon.selected {
|
||||||
background-image: url('~@/assets/main/p3/icon_selected.png');
|
background-image: url('~@/assets/main/p3/icon_selected.png');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
@include resize($scale: 1)
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
@include resize($scale: 1.4);
|
||||||
|
.card-container {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.action-bar {
|
||||||
|
bottom: 30vh;
|
||||||
|
}
|
||||||
|
.list-container {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.right-btn {
|
||||||
|
width: 60px;
|
||||||
|
height: 77px;
|
||||||
|
}
|
||||||
|
.left-btn {
|
||||||
|
width: 60px;
|
||||||
|
height: 77px;
|
||||||
|
}
|
||||||
|
.page-ctrl {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@media (max-width: 415px) {
|
||||||
|
@include resize($scale: 2.0);
|
||||||
|
.card-container {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.scroll-content {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.action-bar {
|
||||||
|
bottom: 30vh;
|
||||||
|
}
|
||||||
|
.list-container {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.right-btn {
|
||||||
|
width: 40px;
|
||||||
|
height: 55px;
|
||||||
|
}
|
||||||
|
.left-btn {
|
||||||
|
width: 40px;
|
||||||
|
height: 55px;
|
||||||
|
}
|
||||||
|
.page-ctrl {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 376px) {
|
||||||
|
@include resize($scale: 2.2);
|
||||||
|
.card-container {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.scroll-content {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.action-bar {
|
||||||
|
bottom: 40vh;
|
||||||
|
}
|
||||||
|
.list-container {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.right-btn {
|
||||||
|
width: 40px;
|
||||||
|
height: 55px;
|
||||||
|
}
|
||||||
|
.left-btn {
|
||||||
|
width: 40px;
|
||||||
|
height: 55px;
|
||||||
|
}
|
||||||
|
.page-ctrl {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
<section id="chip_section" data-anchor="chip">
|
<section id="chip_section" data-anchor="chip">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img src="@/assets/main/p4/txt_title.png">
|
<img src="@/assets/main/p4/txt_title.png">
|
||||||
<span class="text">how old are you</span>
|
<span class="text">Earn your NFTs item by playing the game and sell it on the markedplace to make money.</span>
|
||||||
</div>
|
</div>
|
||||||
<img class="main-img" src="@/assets/main/p4/main.png">
|
<img class="main-img" src="@/assets/main/p4/main.png">
|
||||||
|
<img class="main-img_2" src="@/assets/main/p4_m/main.png">
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ export default class extends Vue {
|
|||||||
}
|
}
|
||||||
.title {
|
.title {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 58px;
|
top: 100px;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -44,6 +45,9 @@ export default class extends Vue {
|
|||||||
.title .text{
|
.title .text{
|
||||||
color: white;
|
color: white;
|
||||||
font-size: 28px;
|
font-size: 28px;
|
||||||
|
margin: 10px 15px;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 0 0.1em #fbc369, 0 0 0.1em #fbc369;
|
||||||
}
|
}
|
||||||
.main-img{
|
.main-img{
|
||||||
width: 87vw;
|
width: 87vw;
|
||||||
@ -54,4 +58,28 @@ export default class extends Vue {
|
|||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
|
.main-img_2 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
.main-img{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.title img {
|
||||||
|
width: 281px;
|
||||||
|
}
|
||||||
|
.title .text{
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.main-img_2{
|
||||||
|
display: block;
|
||||||
|
width: 90vw;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 20vh;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,16 +2,29 @@
|
|||||||
<section id="gameplay_section" data-anchor="gameplay">
|
<section id="gameplay_section" data-anchor="gameplay">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img src="@/assets/main/p2/txt_gameplay.png">
|
<img src="@/assets/main/p2/txt_gameplay.png">
|
||||||
<span class="tips">hi you ar</span>
|
<span class="tips">Earn your NFTs item by playing the game and sell it on the markedplace to make money.</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="color-view">
|
<div class="color-view">'
|
||||||
|
<div class="color-content">
|
||||||
<img class="logo_t" src="@/assets/main/p1/icon_logo_t.png">
|
<img class="logo_t" src="@/assets/main/p1/icon_logo_t.png">
|
||||||
<img class="logo_b" src="@/assets/main/p2/txt_battle.png">
|
<img class="logo_b" src="@/assets/main/p2/txt_battle.png">
|
||||||
<span class="text">some thing error</span>
|
<span class="text">Earn your NFTs item by playing the game and sell it on the markedplace to make money.</span>
|
||||||
<img class="watch_btn" src="@/assets/main/p2/btn_watch.png">
|
<img class="watch_btn" src="@/assets/main/p2/btn_watch.png" @click="showVideo">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<spine-view class="hero-anim" :data="hero" :key="hero.id"></spine-view>
|
<spine-view class="hero-anim" :data="hero" :key="hero.id"></spine-view>
|
||||||
<div class="bottom-cover"></div>
|
<div class="bottom-cover"></div>
|
||||||
|
<div class="video-bg" v-if="videoShow" @click="hideVideo"></div>
|
||||||
|
<div class="video-div" v-if="videoShow" >
|
||||||
|
<video
|
||||||
|
loop
|
||||||
|
playsinline
|
||||||
|
crossorigin="anonymous"
|
||||||
|
autoplay
|
||||||
|
>
|
||||||
|
<source :src="videoUrl">
|
||||||
|
</video>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -29,6 +42,16 @@ import SpineView from '@/components/main/SpineView.vue'
|
|||||||
})
|
})
|
||||||
export default class extends Vue {
|
export default class extends Vue {
|
||||||
private hero: ISpineData = { id: 'hero10', skelName: 'pic_hero10', animName: 'animation', repeat: true, scale: 1.2 }
|
private hero: ISpineData = { id: 'hero10', skelName: 'pic_hero10', animName: 'animation', repeat: true, scale: 1.2 }
|
||||||
|
private videoShow = false
|
||||||
|
private videoUrl = 'https://cdn.cebg.games/video/v2.mp4'
|
||||||
|
showVideo() {
|
||||||
|
this.videoShow = true
|
||||||
|
}
|
||||||
|
|
||||||
|
hideVideo() {
|
||||||
|
this.videoShow = false
|
||||||
|
console.log('hide video')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -44,7 +67,7 @@ export default class extends Vue {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 38px;
|
top: 100px;
|
||||||
right: 0;
|
right: 0;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
width: 50vw;
|
width: 50vw;
|
||||||
@ -70,12 +93,16 @@ export default class extends Vue {
|
|||||||
right: 0;
|
right: 0;
|
||||||
bottom: 18vh;
|
bottom: 18vh;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
padding-bottom: 77px;
|
||||||
|
padding-top: 20px;
|
||||||
|
}
|
||||||
|
.color-content {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding-bottom: 77px;
|
width: 100%;
|
||||||
padding-top: 20px;
|
height: 80%;
|
||||||
}
|
}
|
||||||
.logo_t {
|
.logo_t {
|
||||||
width: 151px;
|
width: 151px;
|
||||||
@ -111,4 +138,103 @@ export default class extends Vue {
|
|||||||
background-image: url('~@/assets/main/p2/bg_bottom.png');
|
background-image: url('~@/assets/main/p2/bg_bottom.png');
|
||||||
background-repeat: repeat-x;
|
background-repeat: repeat-x;
|
||||||
}
|
}
|
||||||
|
.video-bg{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 14;
|
||||||
|
}
|
||||||
|
.video-div {
|
||||||
|
width: 70vw;
|
||||||
|
height: 40vw;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
margin: auto;
|
||||||
|
z-index: 15;
|
||||||
|
}
|
||||||
|
.video-div video {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
.title {
|
||||||
|
top: 60px;
|
||||||
|
}
|
||||||
|
.title img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.hero-anim{
|
||||||
|
width: 450px;
|
||||||
|
height: 600px;
|
||||||
|
left: 10px;
|
||||||
|
}
|
||||||
|
.color-view{
|
||||||
|
width: 100vw;
|
||||||
|
height: 50vh;
|
||||||
|
bottom: 8vh;
|
||||||
|
display: flex;
|
||||||
|
justify-content: end;
|
||||||
|
}
|
||||||
|
.color-content {
|
||||||
|
width: 50%;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
.logo_t{
|
||||||
|
width: 90px;
|
||||||
|
height: 70px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
.logo_b {
|
||||||
|
width: 180px;
|
||||||
|
height: auto;
|
||||||
|
margin-bottom: 80px;
|
||||||
|
}
|
||||||
|
.watch_btn{
|
||||||
|
width: 190px;
|
||||||
|
height: 60px;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title .tips {
|
||||||
|
color: white;
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 0 0.1em #fbc369, 0 0 0.1em #fbc369;
|
||||||
|
}
|
||||||
|
.color-view .text{
|
||||||
|
color: white;
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 0 0.1em #fbc369, 0 0 0.1em #fbc369;
|
||||||
|
}
|
||||||
|
.video-div {
|
||||||
|
width: 100vw;
|
||||||
|
height: 56vw;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
margin: auto;
|
||||||
|
z-index: 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 415px) {
|
||||||
|
.hero-anim{
|
||||||
|
width: 200px;
|
||||||
|
height: 500px;
|
||||||
|
left: 10px;
|
||||||
|
}
|
||||||
|
.color-content {
|
||||||
|
width: 70%;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -35,22 +35,41 @@ export default class extends Vue {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.home_hero{
|
@mixin resize($scale) {
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.hero-anim {
|
.hero-anim {
|
||||||
width: 400px;
|
width: 400px/$scale;
|
||||||
height: 800px;
|
height: 700px/$scale;
|
||||||
margin-left: -90px;
|
|
||||||
margin-right: -90px;
|
|
||||||
}
|
}
|
||||||
.effect-anim {
|
.effect-anim {
|
||||||
left:0;
|
left:0;
|
||||||
top: 0;
|
top: 0;
|
||||||
margin-left: -80px;
|
margin-left: -10px/$scale;
|
||||||
margin-top: 50px;
|
margin-top: 50px/$scale;
|
||||||
width: 400px;
|
width: 400px/$scale;
|
||||||
height: 800px;
|
height: 700px/$scale;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
.home_hero{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
@include resize($scale: 1)
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
@include resize($scale: 1.4);
|
||||||
|
.hero-anim {
|
||||||
|
width: 33vw;
|
||||||
|
height: 44vw;
|
||||||
|
}
|
||||||
|
.effect-anim {
|
||||||
|
left:0;
|
||||||
|
top: 0;
|
||||||
|
margin-left: -25vw;
|
||||||
|
width: 33vw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 415px) {
|
||||||
|
@include resize($scale: 3)
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="home_right_panel">
|
<div class="home_right_panel">
|
||||||
<div class="spine-list">
|
<div class="spine-list">
|
||||||
<home-hero class="hero-anim" v-for="hero in heros" :data="hero" :key="hero.id"></home-hero>
|
<home-hero class="hero-von" v-for="hero in heros" :data="hero" :key="hero.id"></home-hero>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@ -34,10 +34,10 @@ import HomeHero from '@/components/main/HomeHero.vue'
|
|||||||
})
|
})
|
||||||
export default class extends Vue {
|
export default class extends Vue {
|
||||||
private heros: ISpineData[] = [
|
private heros: ISpineData[] = [
|
||||||
{ id: 'hero1', skelName: 'pic_hero2', animName: 'animation', repeat: true },
|
{ id: 'hero1', skelName: 'pic_hero2', animName: 'animation', repeat: true, scale: 1.1 },
|
||||||
{ id: 'hero2', skelName: 'pic_hero3', animName: 'animation', repeat: true },
|
{ id: 'hero2', skelName: 'pic_hero3', animName: 'animation', repeat: true, scale: 1.1 },
|
||||||
{ id: 'hero3', skelName: 'pic_hero9', animName: 'animation', repeat: true },
|
{ id: 'hero3', skelName: 'pic_hero9', animName: 'animation', repeat: true, scale: 1.1 },
|
||||||
{ id: 'hero4', skelName: 'pic_hero1', animName: 'animation', repeat: true }
|
{ id: 'hero4', skelName: 'pic_hero1', animName: 'animation', repeat: true, scale: 1.1 }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -77,14 +77,48 @@ export default class extends Vue {
|
|||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column-reverse;
|
flex-direction: column-reverse;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.spine-list{
|
.spine-list{
|
||||||
display: flex;
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
.hero-anim {
|
.hero-von:not(:first-child){
|
||||||
width: 400px;
|
margin-left: -120px;
|
||||||
height: 800px;
|
}
|
||||||
margin-left: -90px;
|
|
||||||
margin-right: -90px;
|
@media (max-width: 767px) {
|
||||||
|
#home_section{
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.home_left_panel{
|
||||||
|
width: 100vw;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
.home_right_panel {
|
||||||
|
width: 100vw;
|
||||||
|
height: 50vh;
|
||||||
|
}
|
||||||
|
.spine-list{
|
||||||
|
}
|
||||||
|
|
||||||
|
.home_left_panel .one_row:first-child{
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.one_row img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
.version_list_panel img{
|
||||||
|
width: 25vw;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
.hero-von:not(:first-child){
|
||||||
|
margin-left: -100px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 415px) {
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -63,8 +63,8 @@ export default class extends Vue {
|
|||||||
.centerPart{
|
.centerPart{
|
||||||
width: 50vw;
|
width: 50vw;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 33% 33% 33%;
|
grid-template-columns: repeat(3, 33.33%);
|
||||||
grid-template-rows: 80px 80px 80px;
|
grid-template-rows: repeat(3, 80px);
|
||||||
padding-top: 50px;
|
padding-top: 50px;
|
||||||
}
|
}
|
||||||
.link-list a{
|
.link-list a{
|
||||||
@ -96,4 +96,35 @@ export default class extends Vue {
|
|||||||
.community-list a img{
|
.community-list a img{
|
||||||
width: 50px;
|
width: 50px;
|
||||||
}
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
.footer{
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.centerPart{
|
||||||
|
width: 80vw;
|
||||||
|
display: grid;
|
||||||
|
grid-template-rows: repeat(3, 30px);
|
||||||
|
padding-top: 30px;
|
||||||
|
}
|
||||||
|
.community-title {
|
||||||
|
width: 80vw;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.rightPart{
|
||||||
|
width: 80vw;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 415px) {
|
||||||
|
.link-list a{
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 376px) {
|
||||||
|
.link-list a{
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,6 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<header class="header fixed">
|
<header class="header fixed">
|
||||||
|
<div class="menu-list">
|
||||||
<div class="logo_header"><img src="@/assets/main/p1/icon_logo_t.png"></div>
|
<div class="logo_header"><img src="@/assets/main/p1/icon_logo_t.png"></div>
|
||||||
|
<div data-menuanchor="home" class="marked_icon">
|
||||||
|
<a href="/market"><img src="@/assets/main/p1/btn_market.png"></a>
|
||||||
|
</div>
|
||||||
|
<div class="menu-icon" @click="toggleDrop">
|
||||||
|
<img v-if="!dropShow" src="@/assets/main/p1/menu.png">
|
||||||
|
<img v-if="dropShow" src="@/assets/main/p1/close.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="menu_fullpage" >
|
<div class="menu_fullpage" >
|
||||||
<ul>
|
<ul>
|
||||||
<li data-menuanchor="home" @click="changeSection" :class="{'active': currentSection === 'home'}">
|
<li data-menuanchor="home" @click="changeSection" :class="{'active': currentSection === 'home'}">
|
||||||
@ -18,8 +27,24 @@
|
|||||||
<li data-menuanchor="chip" @click="changeSection" :class="{'active': currentSection === 'chip'}">
|
<li data-menuanchor="chip" @click="changeSection" :class="{'active': currentSection === 'chip'}">
|
||||||
<a href="#chip_section"><img src="@/assets/main/p1/btn_chip.png"></a>
|
<a href="#chip_section"><img src="@/assets/main/p1/btn_chip.png"></a>
|
||||||
</li>
|
</li>
|
||||||
<li data-menuanchor="home" >
|
</ul>
|
||||||
<a href="/market"><img src="@/assets/main/p1/btn_market.png"></a>
|
</div>
|
||||||
|
<div class="menu_drop" v-if="dropShow">
|
||||||
|
<ul>
|
||||||
|
<li data-menuanchor="home" @click="changeSection" :class="{'active': currentSection === 'home'}">
|
||||||
|
<a href="#home_section">HOME</a>
|
||||||
|
</li>
|
||||||
|
<li data-menuanchor="video" @click="changeSection" :class="{'active': currentSection === 'video'}" >
|
||||||
|
<a href="#video_section">VIDEO</a>
|
||||||
|
</li>
|
||||||
|
<li data-menuanchor="gameplay" @click="changeSection" :class="{'active': currentSection === 'gameplay'}">
|
||||||
|
<a href="#gameplay_section">GAMEPLAY</a>
|
||||||
|
</li>
|
||||||
|
<li data-menuanchor="nft" @click="changeSection" :class="{'active': currentSection === 'nft'}">
|
||||||
|
<a href="#nft_section">NFT ITEM</a>
|
||||||
|
</li>
|
||||||
|
<li data-menuanchor="chip" @click="changeSection" :class="{'active': currentSection === 'chip'}">
|
||||||
|
<a href="#chip_section">CHIP</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -42,12 +67,18 @@ declare module 'vue/types/vue' {
|
|||||||
props: ['currentSection']
|
props: ['currentSection']
|
||||||
})
|
})
|
||||||
export default class extends Vue {
|
export default class extends Vue {
|
||||||
|
private dropShow = false
|
||||||
changeSection(e: PointerEvent) {
|
changeSection(e: PointerEvent) {
|
||||||
|
this.dropShow = false
|
||||||
const target = e.currentTarget as HTMLElement
|
const target = e.currentTarget as HTMLElement
|
||||||
if (target) {
|
if (target) {
|
||||||
this.$emit('sectionChange', target.dataset.menuanchor)
|
this.$emit('section-change', target.dataset.menuanchor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toggleDrop() {
|
||||||
|
this.dropShow = !this.dropShow
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -57,22 +88,27 @@ export default class extends Vue {
|
|||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: 99;
|
z-index: 99;
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
max-width: 1920px;
|
max-width: 1920px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
background-image: url('~@/assets/main/p1/bg_header.png');
|
background-image: url('~@/assets/main/p1/bg_header.png');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fixed.header {
|
.fixed.header {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
.menu-list {
|
||||||
|
width: 100vw;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
.logo_header{
|
.logo_header{
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 80px;
|
height: 80px;
|
||||||
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
.logo_header img{
|
.logo_header img{
|
||||||
width: auto;
|
width: auto;
|
||||||
@ -81,7 +117,10 @@ export default class extends Vue {
|
|||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
.menu_fullpage{
|
.menu_fullpage{
|
||||||
width: 100%;
|
width: 50vw;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 280px;
|
||||||
display: flex;
|
display: flex;
|
||||||
-webkit-box-align: center;
|
-webkit-box-align: center;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
@ -95,7 +134,8 @@ export default class extends Vue {
|
|||||||
lign-items: center;
|
lign-items: center;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
margin-bottom: 0;
|
margin-top: 8px;
|
||||||
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
.menu_fullpage ul li {
|
.menu_fullpage ul li {
|
||||||
padding: 28px 10px 0;
|
padding: 28px 10px 0;
|
||||||
@ -103,12 +143,80 @@ export default class extends Vue {
|
|||||||
text-align: -webkit-match-parent;
|
text-align: -webkit-match-parent;
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
}
|
}
|
||||||
.menu_fullpage ul li:last-child {
|
|
||||||
padding-top: 8px;
|
|
||||||
}
|
|
||||||
.menu_fullpage ul .active{
|
.menu_fullpage ul .active{
|
||||||
background-image: url('~@/assets/main/p1/btn_bg.png');
|
background-image: url('~@/assets/main/p1/btn_bg.png');
|
||||||
background-repeat: repeat-x;
|
background-repeat: repeat-x;
|
||||||
background-position: 0 21px;
|
background-position: 0 17px;
|
||||||
|
}
|
||||||
|
.marked_icon {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
.menu-icon {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
.header {
|
||||||
|
font-size: 11px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.logo_header{
|
||||||
|
width: 50px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
.menu_fullpage{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.menu_drop {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
top: 50px;
|
||||||
|
right: 0;
|
||||||
|
width: 50vw;
|
||||||
|
background-image: url('~@/assets/main/p1/bg_header.png');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
justify-content: flex-start;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
.menu_drop ul .active{
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.menu_drop ul {
|
||||||
|
flex-direction: column;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
lign-items: center;
|
||||||
|
list-style: none;
|
||||||
|
padding-left: 0;
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu_drop ul li {
|
||||||
|
padding: 28px 10px 0;
|
||||||
|
display: list-item;
|
||||||
|
text-align: -webkit-match-parent;
|
||||||
|
margin-left: 30px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.menu_drop ul li a {
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 3vw;
|
||||||
|
}
|
||||||
|
.marked_icon{
|
||||||
|
margin-bottom: 8px;
|
||||||
|
width: 80vw;
|
||||||
|
}
|
||||||
|
.marked_icon img {
|
||||||
|
width: 160px;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.menu-icon{
|
||||||
|
display: inherit;
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<section id="nft_section" data-anchor="nft">
|
<section id="nft_section" data-anchor="nft">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img src="@/assets/main/p3/txt_title.png">
|
<img src="@/assets/main/p3/txt_title.png">
|
||||||
<span class="text">how old are you</span>
|
<span class="text">Earn your NFTs item by playing the game and sell it on the markedplace to make money.</span>
|
||||||
</div>
|
</div>
|
||||||
<card-scroller class="card-scroller"></card-scroller>
|
<card-scroller class="card-scroller"></card-scroller>
|
||||||
</section>
|
</section>
|
||||||
@ -34,7 +34,7 @@ export default class extends Vue {
|
|||||||
}
|
}
|
||||||
.title {
|
.title {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 100px;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -48,13 +48,22 @@ export default class extends Vue {
|
|||||||
.title .text{
|
.title .text{
|
||||||
color: white;
|
color: white;
|
||||||
font-size: 28px;
|
font-size: 28px;
|
||||||
|
margin: 5px 15px;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 0 0.1em #fbc369, 0 0 0.1em #fbc369;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
.title img{
|
||||||
|
width: 281px;
|
||||||
|
top: 5vh;
|
||||||
}
|
}
|
||||||
.card-scroller {
|
.card-scroller {
|
||||||
position: absolute;
|
height: 70vh;
|
||||||
left: 0;
|
}
|
||||||
right: 0;
|
.title .text{
|
||||||
bottom: 0;
|
font-size: 14px;
|
||||||
height: 766px;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,5 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<section id="video_section" data-anchor="video"></section>
|
<section id="video_section" data-anchor="video">
|
||||||
|
<video
|
||||||
|
width="100%"
|
||||||
|
height="100%"
|
||||||
|
loop
|
||||||
|
playsinline
|
||||||
|
crossorigin="anonymous"
|
||||||
|
autoplay
|
||||||
|
>
|
||||||
|
<source :src="videoUrl">
|
||||||
|
</video>
|
||||||
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@ -12,12 +23,13 @@ import { Component, Vue } from 'vue-property-decorator'
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
export default class extends Vue {
|
export default class extends Vue {
|
||||||
|
private videoUrl = 'https://cdn.cebg.games/video/v2.mp4'
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
#video_section {
|
#video_section {
|
||||||
background-image: url('~@/assets/main//p2/bg_p2.png');
|
background-image: url('~@/assets/main/p2/bg_p2.png');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
export interface ISpineData {
|
export interface ISpineData {
|
||||||
id: string
|
id: string
|
||||||
skelName: string
|
skelName?: string
|
||||||
animName: string
|
animName?: string
|
||||||
|
name?: string
|
||||||
repeat: boolean
|
repeat: boolean
|
||||||
scale?: number
|
scale?: number
|
||||||
|
price?: string
|
||||||
|
class?: number
|
||||||
|
type?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SpineRender {
|
export class SpineRender {
|
||||||
@ -45,8 +49,8 @@ export class SpineRender {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init({ skelName, animName, scale, repeat }: ISpineData) {
|
init({ skelName, animName, scale, repeat }: ISpineData) {
|
||||||
this.skelName = skelName
|
this.skelName = skelName!
|
||||||
this.animName = animName
|
this.animName = animName || 'animation'
|
||||||
this.repeat = repeat
|
this.repeat = repeat
|
||||||
this.scale = scale || this.scale
|
this.scale = scale || this.scale
|
||||||
// Create a simple shader, mesh, model-view-projection matrix and SkeletonRenderer.
|
// Create a simple shader, mesh, model-view-projection matrix and SkeletonRenderer.
|
||||||
@ -95,22 +99,22 @@ export class SpineRender {
|
|||||||
animationState.setAnimation(0, initialAnimation, self.repeat)
|
animationState.setAnimation(0, initialAnimation, self.repeat)
|
||||||
animationState.addListener({
|
animationState.addListener({
|
||||||
start: function(track: spine.TrackEntry) {
|
start: function(track: spine.TrackEntry) {
|
||||||
console.log('Animation on track ' + track.trackIndex + ' started')
|
// console.log('Animation on track ' + track.trackIndex + ' started')
|
||||||
},
|
},
|
||||||
interrupt: function(track: spine.TrackEntry) {
|
interrupt: function(track: spine.TrackEntry) {
|
||||||
console.log('Animation on track ' + track.trackIndex + ' interrupted')
|
// console.log('Animation on track ' + track.trackIndex + ' interrupted')
|
||||||
},
|
},
|
||||||
end: function(track: spine.TrackEntry) {
|
end: function(track: spine.TrackEntry) {
|
||||||
console.log('Animation on track ' + track.trackIndex + ' ended')
|
// console.log('Animation on track ' + track.trackIndex + ' ended')
|
||||||
},
|
},
|
||||||
dispose: function(track: spine.TrackEntry) {
|
dispose: function(track: spine.TrackEntry) {
|
||||||
console.log('Animation on track ' + track.trackIndex + ' disposed')
|
// console.log('Animation on track ' + track.trackIndex + ' disposed')
|
||||||
},
|
},
|
||||||
complete: function(track: spine.TrackEntry) {
|
complete: function(track: spine.TrackEntry) {
|
||||||
console.log('Animation on track ' + track.trackIndex + ' completed')
|
// console.log('Animation on track ' + track.trackIndex + ' completed')
|
||||||
},
|
},
|
||||||
event: function(track: spine.TrackEntry, event: spine.Event) {
|
event: function(track: spine.TrackEntry, event: spine.Event) {
|
||||||
console.log('Event on track ' + track.trackIndex + ': ' + JSON.stringify(event))
|
// console.log('Event on track ' + track.trackIndex + ': ' + JSON.stringify(event))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<main-header
|
<main-header
|
||||||
:current-section="section"
|
:current-section="section"
|
||||||
@sectionChange="topMenuClicked"
|
@section-change="topMenuClicked"
|
||||||
></main-header>
|
></main-header>
|
||||||
<main id="fullpage">
|
<main id="fullpage">
|
||||||
<home-section ></home-section>
|
<home-section ></home-section>
|
||||||
@ -60,5 +60,10 @@ section{
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
#fullpage{
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|