|
@ -7,11 +7,17 @@ |
|
|
class="small-item" |
|
|
class="small-item" |
|
|
v-for="item in showGames" |
|
|
v-for="item in showGames" |
|
|
:key="item.id" |
|
|
:key="item.id" |
|
|
|
|
|
:class="{ active: item.name === newname }" |
|
|
@mouseover="mouseover(item.name)" |
|
|
@mouseover="mouseover(item.name)" |
|
|
@click="openGame(item.name)" |
|
|
@click="openGame(item.name)" |
|
|
:style="{ 'background-image': `url(${base}page3/${item.name}.jpg)` }" |
|
|
|
|
|
@mouseout="hoverEnd" |
|
|
@mouseout="hoverEnd" |
|
|
></div> |
|
|
> |
|
|
|
|
|
<img :src="`${base}/page3/${item.name}.jpg`" alt="" class="list-img" /> |
|
|
|
|
|
<div v-if="item.name === newname" class="mask"> |
|
|
|
|
|
{{ item.text }} |
|
|
|
|
|
<img class="play-img" :src="`${base}/page3/play.png`" /> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="btn btn-right" :class="{ disabled: page === total - 1 }" @click="handleNext"></div> |
|
|
<div class="btn btn-right" :class="{ disabled: page === total - 1 }" @click="handleNext"></div> |
|
|
</div> |
|
|
</div> |
|
@ -27,7 +33,6 @@ import { computed, ref } from 'vue'; |
|
|
const store = useStore(); |
|
|
const store = useStore(); |
|
|
const route = useRoute(); |
|
|
const route = useRoute(); |
|
|
const base = import.meta.env.BASE_URL; |
|
|
const base = import.meta.env.BASE_URL; |
|
|
|
|
|
|
|
|
if (route.query && route.query.site) { |
|
|
if (route.query && route.query.site) { |
|
|
store.commit('setSelectedSite', route.query.site); |
|
|
store.commit('setSelectedSite', route.query.site); |
|
|
} |
|
|
} |
|
@ -39,6 +44,7 @@ const size = 4; |
|
|
const count = computed(() => allGames.value.length); // 游戏个数 |
|
|
const count = computed(() => allGames.value.length); // 游戏个数 |
|
|
const total = computed(() => Math.ceil(count.value / size)); // 总页数 |
|
|
const total = computed(() => Math.ceil(count.value / size)); // 总页数 |
|
|
const showGames = computed(() => allGames.value.slice(page.value * size, page.value * size + size)); |
|
|
const showGames = computed(() => allGames.value.slice(page.value * size, page.value * size + size)); |
|
|
|
|
|
const newname = ref(''); |
|
|
|
|
|
|
|
|
// 上一页 |
|
|
// 上一页 |
|
|
function handlePrev() { |
|
|
function handlePrev() { |
|
@ -66,6 +72,8 @@ function openGame(gameName) { |
|
|
* @param {string} gameName 游戏name |
|
|
* @param {string} gameName 游戏name |
|
|
*/ |
|
|
*/ |
|
|
function mouseover(gameName) { |
|
|
function mouseover(gameName) { |
|
|
|
|
|
// console.log(gameName); |
|
|
|
|
|
newname.value = gameName; |
|
|
hover(); |
|
|
hover(); |
|
|
gameImage.value = `/page3/${gameName}.jpg`; |
|
|
gameImage.value = `/page3/${gameName}.jpg`; |
|
|
} |
|
|
} |
|
@ -85,13 +93,13 @@ function hoverEnd() { |
|
|
.container { |
|
|
.container { |
|
|
position: absolute; |
|
|
position: absolute; |
|
|
width: 1280rem; |
|
|
width: 1280rem; |
|
|
height: 720rem; |
|
|
height: 619rem; |
|
|
left: 50%; |
|
|
left: 50%; |
|
|
top: 50%; |
|
|
top: 50%; |
|
|
transform: translate3d(-50%, -50%, 0); |
|
|
transform: translate3d(-50%, -50%, 0); |
|
|
background-repeat: no-repeat; |
|
|
background-repeat: no-repeat; |
|
|
background-position: center; |
|
|
background-position: center; |
|
|
background-size: 1280rem 720rem; |
|
|
background-size: 1280rem 670rem; |
|
|
} |
|
|
} |
|
|
.small-container { |
|
|
.small-container { |
|
|
position: absolute; |
|
|
position: absolute; |
|
@ -110,6 +118,33 @@ function hoverEnd() { |
|
|
border: 4rem solid #fff; |
|
|
border: 4rem solid #fff; |
|
|
margin-right: 8rem; |
|
|
margin-right: 8rem; |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
|
|
|
position: relative; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
} |
|
|
|
|
|
.mask { |
|
|
|
|
|
font-size: 20rem; |
|
|
|
|
|
font-weight: 600; |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
height: 100%; |
|
|
|
|
|
background-color: rgba(0, 0, 0, 0.5); |
|
|
|
|
|
position: absolute; |
|
|
|
|
|
bottom: 0; |
|
|
|
|
|
color: #fff; |
|
|
|
|
|
text-align: center; |
|
|
|
|
|
line-height: 240rem; |
|
|
|
|
|
} |
|
|
|
|
|
.list-img { |
|
|
|
|
|
width: 276rem; |
|
|
|
|
|
transition: all 0.6s; |
|
|
|
|
|
} |
|
|
|
|
|
.active .list-img { |
|
|
|
|
|
transform: scale(1.1); |
|
|
|
|
|
} |
|
|
|
|
|
.play-img { |
|
|
|
|
|
width: 40rem; |
|
|
|
|
|
position: absolute; |
|
|
|
|
|
top: 35%; |
|
|
|
|
|
left: 43%; |
|
|
} |
|
|
} |
|
|
.small-item:last-child { |
|
|
.small-item:last-child { |
|
|
margin-right: 0; |
|
|
margin-right: 0; |
|
|