feat(home): 添加首页轮播图功能并优化页面样式

- 集成 a-carousel 组件实现首页英雄区域轮播图效果
- 添加 ClientOnly 包装确保轮播图在客户端渲染
- 配置自动播放和淡入淡出动画效果
- 设置背景图片数组包含两个轮播图片地址
- 调整 CSS 样式实现轮播图绝对定位和层级管理
- 修改页脚背景色从黑色调整为灰色
- 恢复显示网站名称文字并设置绿色字体颜色
- 优化轮播图容器和幻灯片的高度适配样式
This commit is contained in:
2026-01-29 12:56:01 +08:00
parent 7bb22a1975
commit 76534dd2de
3 changed files with 51 additions and 5 deletions

View File

@@ -75,7 +75,7 @@ const year = new Date().getFullYear()
<style scoped>
.footer {
background: #000;
background: #4b5563;
padding: 0;
}
</style>

View File

@@ -35,9 +35,9 @@
<div class="mx-auto flex max-w-screen-xl items-center justify-between gap-3 px-4">
<NuxtLink to="/" class="navbar-brand">
<img class="navbar-logo" :src="logoUrl" :alt="siteName" />
<!-- <span class="navbar-brand-name">-->
<!-- {{ siteName }}-->
<!-- </span>-->
<span class="navbar-brand-name">
{{ siteName }}
</span>
</NuxtLink>
<nav class="nav hidden md:flex">
<template v-for="item in navItems" :key="item.key">
@@ -377,6 +377,7 @@ const todayText = computed(() => {
}
.navbar-brand-name {
color: #e7ffe5;
font-size: 15px;
letter-spacing: 0.02em;
white-space: nowrap;

View File

@@ -4,6 +4,23 @@
<div class="grid grid-cols-12 gap-6">
<div class="col-span-12">
<div class="panel hero">
<div class="hero-bg" aria-hidden="true">
<ClientOnly>
<a-carousel class="hero-carousel" autoplay effect="fade" :autoplaySpeed="4500" :dots="false">
<div
v-for="src in heroSlides"
:key="src"
class="hero-slide"
:style="{ backgroundImage: `url(${src})` }"
></div>
</a-carousel>
<template #fallback>
<div class="hero-carousel">
<div class="hero-slide" :style="{ backgroundImage: `url(${heroSlides[0]})` }"></div>
</div>
</template>
</ClientOnly>
</div>
<div class="hero-inner">
<!-- <div class="hero-badge">OFFICIAL</div>-->
<!-- <div class="hero-title">{{ COMPANY.projectName }}</div>-->
@@ -140,6 +157,11 @@ usePageSeo({
path: '/'
})
const heroSlides = [
'https://file-cloud.yst.com.cn/photo/website/2024/11/28/5a5cc07336224e54a84561c80899bcac.jpg',
'https://oss.wsdns.cn/20260115/75690dea8f064ceda03246b198a7d710.jpg'
]
function splitScope(text: string) {
return text
.split(/[;]+/g)
@@ -253,14 +275,37 @@ function scrollToCompany() {
}
.hero {
position: relative;
min-height: 360px;
background: url('https://oss.wsdns.cn/20260115/75690dea8f064ceda03246b198a7d710.jpg');
}
.hero-bg {
position: absolute;
inset: 0;
z-index: 0;
}
.hero-carousel {
height: 100%;
}
.hero-slide {
height: 100%;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.hero-carousel :deep(.slick-list),
.hero-carousel :deep(.slick-track),
.hero-carousel :deep(.slick-slide),
.hero-carousel :deep(.slick-slide > div) {
height: 100%;
}
.hero-inner {
position: relative;
z-index: 1;
height: 100%;
padding: 28px;
display: flex;