From bb08754212c3bf9a015f5450e1f77c0d8fbb468b Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期三, 09 四月 2025 14:17:04 +0800
Subject: [PATCH] AI场景页面优化
---
src/app/ai-scene/page.tsx | 36 +++++++++++++++---
src/app/page.tsx | 31 ++++++++-------
src/components/layout/Navbar.tsx | 8 ++--
3 files changed, 51 insertions(+), 24 deletions(-)
diff --git a/src/app/ai-scene/page.tsx b/src/app/ai-scene/page.tsx
index 5d0a809..8accf02 100644
--- a/src/app/ai-scene/page.tsx
+++ b/src/app/ai-scene/page.tsx
@@ -4,6 +4,7 @@
import Card from '@/components/Card';
import ChatDialog from '@/components/ChatDialog';
import SceneIntroDialog from '@/components/SceneIntroDialog';
+import { motion } from 'framer-motion';
const services = [
{
@@ -62,14 +63,37 @@
<div className="min-h-screen pt-16">
<div className="flex-1 p-6 md:p-8 bg-gradient-to-b from-[var(--ai-surface)] to-white">
<div className="max-w-7xl mx-auto">
- <div className="mb-8">
- <h1 className="text-3xl font-bold text-[var(--ai-primary)] mb-2">
+ <motion.div
+ className="mb-8"
+ initial={{ opacity: 0, y: 20 }}
+ animate={{ opacity: 1, y: 0 }}
+ transition={{ duration: 0.6, ease: "easeOut" }}
+ >
+ <motion.h1
+ className="text-3xl font-bold text-[var(--ai-primary)] mb-2"
+ initial={{ opacity: 0, x: -20 }}
+ animate={{ opacity: 1, x: 0 }}
+ transition={{ duration: 0.5, delay: 0.2 }}
+ >
AI鍦烘櫙妯℃嫙
<span className="ml-2 inline-block w-2 h-2 rounded-full bg-[var(--ai-secondary)] animate-pulse"></span>
- </h1>
- <p className="text-gray-600">閫夋嫨浠ヤ笅鍦烘櫙锛屼綋楠屼汉宸ユ櫤鑳藉浣曡В鍐冲疄闄呬笟鍔¢棶棰�</p>
- <div className="h-1 w-24 bg-gradient-to-r from-[var(--ai-secondary)] to-[var(--ai-accent)] mt-4"></div>
- </div>
+ </motion.h1>
+ <motion.p
+ className="text-gray-600"
+ initial={{ opacity: 0, x: -20 }}
+ animate={{ opacity: 1, x: 0 }}
+ transition={{ duration: 0.5, delay: 0.3 }}
+ >
+ 閫夋嫨浠ヤ笅鍦烘櫙锛屼綋楠屼汉宸ユ櫤鑳藉浣曡В鍐冲疄闄呬笟鍔¢棶棰�
+ </motion.p>
+ <motion.div
+ className="h-1 w-24 bg-gradient-to-r from-[var(--ai-secondary)] to-[var(--ai-accent)]"
+ initial={{ scaleX: 0, opacity: 0 }}
+ animate={{ scaleX: 1, opacity: 1 }}
+ transition={{ duration: 0.6, delay: 0.4 }}
+ style={{ originX: 0 }}
+ ></motion.div>
+ </motion.div>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{services.map((service, index) => (
<Card
diff --git a/src/app/page.tsx b/src/app/page.tsx
index cc2abb1..af7c629 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -170,8 +170,8 @@
</motion.div>
{/* 浜や簰鎸夐挳缁� - 椤堕儴 */}
- <div className="flex flex-col sm:flex-row justify-center items-center gap-6 sm:gap-12 mb-28 mt-16">
- <Link href="/ai-scene">
+ <div className="flex flex-col sm:flex-row items-center justify-center gap-6 mb-20">
+ <a href="/ai-scene">
<motion.div
custom={0}
initial="hidden"
@@ -187,29 +187,32 @@
{/* 绮掑瓙鏁堟灉 */}
<div className="absolute inset-0 overflow-hidden rounded-lg">
- {[...Array(6)].map((_, i) => (
+ {[...Array(3)].map((_, i) => (
<motion.div
key={i}
- className="absolute w-1 h-1 rounded-full bg-[#6ADBFF]"
- initial={{ x: "100%", y: "100%", opacity: 0 }}
+ className="absolute rounded-full border border-[#6ADBFF]/20"
+ style={{
+ left: "50%",
+ top: "50%",
+ width: "10px",
+ height: "10px",
+ }}
+ initial={{ scale: 0, x: "-50%", y: "-50%", opacity: 0.5 }}
animate={{
- x: ["100%", `${Math.random() * 100}%`, "0%"],
- y: ["100%", `${Math.random() * 100}%`, "0%"],
- opacity: [0, 1, 0]
+ scale: [0, 8],
+ opacity: [0.5, 0]
}}
transition={{
- duration: 2 + Math.random() * 3,
- repeat: Infinity,
- repeatType: "loop",
- ease: "easeInOut",
- delay: i * 0.2
+ duration: 2,
+ repeat: Infinity,
+ delay: i * 0.6
}}
/>
))}
</div>
</div>
</motion.div>
- </Link>
+ </a>
<Link href="/chat">
<motion.div
diff --git a/src/components/layout/Navbar.tsx b/src/components/layout/Navbar.tsx
index 9000e20..758dd19 100644
--- a/src/components/layout/Navbar.tsx
+++ b/src/components/layout/Navbar.tsx
@@ -157,7 +157,7 @@
{/* 瀵艰埅鑿滃崟 - 澧炲姞z-index纭繚鍦ㄥ姩鏁堜箣涓� */}
<div className="hidden md:flex items-center space-x-8 relative z-20">
- <Link
+ <a
href="/ai-scene"
className="relative px-3 py-2 text-sm font-medium"
onMouseEnter={() => setActiveMenu('ai-scene')}
@@ -166,7 +166,7 @@
<span className={`relative z-10 transition-colors duration-300 ${activeMenu === 'ai-scene' ? 'text-[#6ADBFF]' : 'text-gray-100'}`}>AI鍦烘櫙妯℃嫙</span>
<span className={`absolute bottom-0 left-0 h-[2px] bg-gradient-to-r from-[#6ADBFF] to-transparent
transition-all duration-300 ${activeMenu === 'ai-scene' ? 'w-full' : 'w-0'}`}></span>
- </Link>
+ </a>
<Link
href="/chat"
@@ -267,13 +267,13 @@
>
<div className="p-3 space-y-1 bg-gradient-to-b from-[#1E2B63] to-[#0A1033]
border-t border-[#6ADBFF]/10">
- <Link
+ <a
href="/ai-scene"
className="block px-4 py-3 text-white border-l-2 border-transparent hover:border-[#6ADBFF]
hover:bg-[#3B4888]/20 rounded-r-md transition-all duration-200"
>
AI鍦烘櫙妯℃嫙
- </Link>
+ </a>
<Link
href="/chat"
--
Gitblit v1.9.3