diff --git a/package.json b/package.json index 28034d2..0276780 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host 0.0.0.0", "build": "tsc && vite build", "preview": "vite preview" }, diff --git a/public/images/post_01.png b/public/images/post_01.png new file mode 100644 index 0000000..c6247b4 Binary files /dev/null and b/public/images/post_01.png differ diff --git a/public/images/post_02.png b/public/images/post_02.png new file mode 100644 index 0000000..c07e1f4 Binary files /dev/null and b/public/images/post_02.png differ diff --git a/public/images/post_03.png b/public/images/post_03.png new file mode 100644 index 0000000..1af3509 Binary files /dev/null and b/public/images/post_03.png differ diff --git a/public/images/post_04.png b/public/images/post_04.png new file mode 100644 index 0000000..037b4b2 Binary files /dev/null and b/public/images/post_04.png differ diff --git a/public/images/post_05.png b/public/images/post_05.png new file mode 100644 index 0000000..1658250 Binary files /dev/null and b/public/images/post_05.png differ diff --git a/public/images/post_06.png b/public/images/post_06.png new file mode 100644 index 0000000..fe71af4 Binary files /dev/null and b/public/images/post_06.png differ diff --git a/src/App.tsx b/src/App.tsx index ed258ce..3720b7c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,5 @@ -import { BrowserRouter as Router, Routes, Route } from 'react-router-dom' +import { useEffect } from 'react' +import { BrowserRouter as Router, Routes, Route, useLocation } from 'react-router-dom' import Navbar from './components/Navbar' import Footer from './components/Footer' import Home from './pages/Home' @@ -6,9 +7,20 @@ import About from './pages/About' import Works from './pages/Works' import Contact from './pages/Contact' +function ScrollToTop() { + const { pathname } = useLocation() + + useEffect(() => { + window.scrollTo({ top: 0, behavior: 'smooth' }) + }, [pathname]) + + return null +} + function App() { return ( +
diff --git a/src/components/AnimatedCounter.tsx b/src/components/AnimatedCounter.tsx index e5c2a3c..a7579ab 100644 --- a/src/components/AnimatedCounter.tsx +++ b/src/components/AnimatedCounter.tsx @@ -54,7 +54,7 @@ export default function AnimatedCounter({ end, suffix = '', duration = 2000 }: A }, [isVisible, end, duration]) return ( -
+
{count}{suffix}
) diff --git a/src/components/VideoCard.tsx b/src/components/VideoCard.tsx index ec9cb54..42e8435 100644 --- a/src/components/VideoCard.tsx +++ b/src/components/VideoCard.tsx @@ -29,15 +29,15 @@ export default function VideoCard({ video, onClick }: VideoCardProps) {
onClick(video)} - onMouseMove={handleMouseMove} - onMouseLeave={handleMouseLeave} + // onClick={() => onClick(video)} + // onMouseMove={handleMouseMove} + // onMouseLeave={handleMouseLeave} style={{ transform: `perspective(1000px) rotateX(${tilt.x}deg) rotateY(${tilt.y}deg)`, transition: 'transform 0.3s ease' }} > -
+
{video.title}
-
- - - -
+
-
+ {/*
{video.category} -
+
*/}
@@ -64,9 +60,9 @@ export default function VideoCard({ video, onClick }: VideoCardProps) {

{video.title}

-

+ {/*

{video.description} -

+

*/}
) diff --git a/src/data/videos.ts b/src/data/videos.ts index dc02b5c..9fe9d17 100644 --- a/src/data/videos.ts +++ b/src/data/videos.ts @@ -1,7 +1,6 @@ export interface Video { id: number title: string - description: string url: string thumbnail: string category: string @@ -13,10 +12,9 @@ export interface Video { export const videos: Video[] = [ { id: 1, - title: 'AI智能城市宣傳片', - description: '利用AI技術生成的未來城市概念視頻,展示智慧城市藍圖,融合3D建模與實拍素材', + title: '只在午夜吻我的王子', url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh1/640/360', + thumbnail: '/images/post_01.png', category: '宣傳片', duration: '2:30', tech: ['Stable Diffusion', 'Runway Gen-2', 'After Effects'], @@ -24,10 +22,9 @@ export const videos: Video[] = [ }, { id: 2, - title: '電商產品展示動畫', - description: 'AI驅動的產品3D展示動畫,多角度展示產品細節,適用於電商平臺', + title: '人类宠物店', url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh2/640/360', + thumbnail: '/images/post_02.png', category: '產品展示', duration: '0:45', tech: ['Midjourney', 'Blender', 'ComfyUI'], @@ -35,10 +32,9 @@ export const videos: Video[] = [ }, { id: 3, - title: '品牌故事短片', - description: '用AI講述品牌故事,情感與技術的完美結合,傳遞品牌價值觀', + title: '拉斯维加斯', url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh3/640/360', + thumbnail: '/images/post_03.png', category: '品牌故事', duration: '3:15', tech: ['Pika Labs', 'ElevenLabs', 'Premiere Pro'], @@ -46,10 +42,9 @@ export const videos: Video[] = [ }, { id: 4, - title: '抖音爆款短視頻', - description: '爲社交媒體平臺定製的AI短視頻內容,高完播率,引爆流量', + title: '破碎镜面后的国王', url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh4/640/360', + thumbnail: '/images/post_04.png', category: '社交媒體', duration: '0:15', tech: ['HeyGen', 'CapCut', 'D-ID'], @@ -57,10 +52,9 @@ export const videos: Video[] = [ }, { id: 5, - title: '在線課程片頭', - description: 'AI生成的教育內容片頭,讓知識傳播更生動有趣', + title: '她焚烧了神的王座', url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh5/640/360', + thumbnail: '/images/post_05.png', category: '教育培訓', duration: '1:00', tech: ['Synthesia', 'D-ID', 'After Effects'], @@ -69,80 +63,13 @@ export const videos: Video[] = [ { id: 6, title: 'AI數字人主播', - description: 'AI數字人技術,7x24小時不間斷直播,降低人力成本', url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh6/640/360', + thumbnail: '/images/post_06.png', category: '數字人', duration: '1:30', tech: ['HeyGen', 'D-ID', 'ElevenLabs'], client: '某電商平臺' }, - { - id: 7, - title: '房地產虛擬看房', - description: 'AI生成的房產展示視頻,虛擬漫遊+實景融合,提升看房體驗', - url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh7/640/360', - category: '產品展示', - duration: '2:00', - tech: ['Unreal Engine', 'Stable Diffusion', 'Runway'], - client: '某地產開發商' - }, - { - id: 8, - title: '遊戲宣傳CG', - description: 'AI輔助生成的遊戲宣傳CG,史詩級視覺效果,成本僅爲傳統1/10', - url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh8/640/360', - category: '宣傳片', - duration: '1:45', - tech: ['Midjourney', 'Runway Gen-2', 'Nuke'], - client: '某遊戲公司' - }, - { - id: 9, - title: '醫療科普動畫', - description: '專業醫療知識可視化,AI生成的醫學動畫讓複雜概念通俗易懂', - url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh9/640/360', - category: '教育培訓', - duration: '2:20', - tech: ['Stable Diffusion', 'After Effects', 'Blender'], - client: '某醫療機構' - }, - { - id: 10, - title: '餐飲品牌宣傳片', - description: 'AI生成的美食展示視頻,誘人畫面+品牌故事,提升品牌調性', - url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh10/640/360', - category: '品牌故事', - duration: '1:50', - tech: ['Midjourney', 'Pika Labs', 'Premiere Pro'], - client: '某連鎖餐飲品牌' - }, - { - id: 11, - title: '小紅書種草視頻', - description: '爲小紅書平臺定製的種草視頻,高轉化率,精準觸達目標用戶', - url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh11/640/360', - category: '社交媒體', - duration: '0:30', - tech: ['HeyGen', 'CapCut', 'ComfyUI'], - client: '某美妝品牌' - }, - { - id: 12, - title: 'AI虛擬偶像直播', - description: '全棧AI虛擬偶像解決方案,從形象設計到實時驅動,一站式服務', - url: 'https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4', - thumbnail: 'https://picsum.photos/seed/cyh12/640/360', - category: '數字人', - duration: '3:00', - tech: ['D-ID', 'ElevenLabs', 'OBS'], - client: '某直播平臺' - } ] export const categories = ['全部', '宣傳片', '產品展示', '品牌故事', '社交媒體', '教育培訓', '數字人'] diff --git a/src/index.css b/src/index.css index f084af6..d16930d 100644 --- a/src/index.css +++ b/src/index.css @@ -4,6 +4,10 @@ @tailwind components; @tailwind utilities; +html { + scroll-behavior: smooth; +} + * { margin: 0; padding: 0; diff --git a/src/pages/About.tsx b/src/pages/About.tsx index 340bb3a..10efec4 100644 --- a/src/pages/About.tsx +++ b/src/pages/About.tsx @@ -69,11 +69,6 @@ export default function About() {
-
- - 我們的故事 - -

用 AI 重新定義 視頻創作

@@ -129,15 +124,8 @@ export default function About() { key={index} className="glass-card rounded-2xl p-6 text-center hover-lift group" > -
- - {stat.suffix === "%" ? "%" : "+"} - -
-

{stat.label}

+
))}
@@ -196,7 +184,7 @@ export default function About() {
-
+
{[ { icon: ( diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index cd585f8..33c2ac9 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -62,16 +62,9 @@ export default function Home() {
{/* Left Content */}
-
- - - 香港領先的 AI 短視頻製作公司 - -
-

- AI短視頻 -
+
AI短視頻
+ 讓創意觸手可及

@@ -353,21 +346,17 @@ export default function Home() {
-
- - 精選作品 - -
+

探索 AI創作

- 點擊作品,立即觀看AI生成的精彩視頻 + 探索我們用AI技術創作的精彩短視頻作品

-
+
{featuredVideos.map((video, index) => ( @@ -409,11 +398,7 @@ export default function Home() {
-
- - 客戶評價 - -
+

他們都在說

diff --git a/src/pages/Works.tsx b/src/pages/Works.tsx index 51addff..d570f7d 100644 --- a/src/pages/Works.tsx +++ b/src/pages/Works.tsx @@ -28,12 +28,12 @@ export default function Works() { 作品 展示

- 探索我們用AI技術創作的精彩短視頻作品,點擊即可觀看 + 探索我們用AI技術創作的精彩短視頻作品

- {/* Category Filter */} + {/* Category Filter
{categories.map((category) => ( @@ -50,17 +50,15 @@ export default function Works() { ))}
-
+ */} {/* Video Count */} -
-

- 共 {filteredVideos.length} 個作品 -

+
+
{/* Video Grid */} -
+
{filteredVideos.map((video, index) => (