From a5d8c6e1ddef22c4d509ec11fc28f5f594cc38bb Mon Sep 17 00:00:00 2001 From: Yuna Celisse <29951517@qq.com> Date: Thu, 8 Jan 2026 16:12:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86css=E5=8A=A8?= =?UTF-8?q?=E7=94=BB=E7=94=BB=E9=9D=A2=E5=88=87=E6=8D=A2=E6=9B=B4=E6=B5=81?= =?UTF-8?q?=E7=95=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vitepress/theme/index.mts | 30 +++++++++++++++++++++++++++++- .vitepress/theme/style.css | 25 +++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 .vitepress/theme/style.css diff --git a/.vitepress/theme/index.mts b/.vitepress/theme/index.mts index 4699163..fd0dd42 100644 --- a/.vitepress/theme/index.mts +++ b/.vitepress/theme/index.mts @@ -1,2 +1,30 @@ +import type { EnhanceAppContext, Theme } from 'vitepress' import DefaultTheme from 'vitepress/theme' -export default DefaultTheme \ No newline at end of file +import './style.css' + +export default { + extends: DefaultTheme, + enhanceApp({ app, router }: EnhanceAppContext) { + // 监听路由变化,添加页面切换动画 + if (typeof window !== 'undefined') { + // 首次加载时添加动画 + router.onAfterRouteChanged = () => { + const content = document.querySelector('.VPDoc, .VPContent') + if (content) { + content.classList.remove('page-transition-leave') + content.classList.add('page-transition-enter') + setTimeout(() => { + content.classList.remove('page-transition-enter') + }, 400) + } + } + + router.onBeforeRouteChange = () => { + const content = document.querySelector('.VPDoc, .VPContent') + if (content) { + content.classList.add('page-transition-leave') + } + } + } + }, +} satisfies Theme \ No newline at end of file diff --git a/.vitepress/theme/style.css b/.vitepress/theme/style.css new file mode 100644 index 0000000..69052d6 --- /dev/null +++ b/.vitepress/theme/style.css @@ -0,0 +1,25 @@ +/* 页面切换过渡动效 */ +.VPDoc, +.VPContent { + transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out; +} + +.page-transition-leave { + opacity: 0; + transform: translateY(-10px); +} + +.page-transition-enter { + animation: pageEnter 0.4s ease-out; +} + +@keyframes pageEnter { + from { + opacity: 0; + transform: translateY(15px); + } + to { + opacity: 1; + transform: translateY(0); + } +} From 4982ca57ed82e5b869fb7e081febd55afe6e19c7 Mon Sep 17 00:00:00 2001 From: Yuna Celisse <29951517@qq.com> Date: Fri, 9 Jan 2026 16:47:12 +0800 Subject: [PATCH 2/2] decline time from 400 to 200 --- .vitepress/theme/index.mts | 2 +- .vitepress/theme/style.css | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.vitepress/theme/index.mts b/.vitepress/theme/index.mts index fd0dd42..252a1d6 100644 --- a/.vitepress/theme/index.mts +++ b/.vitepress/theme/index.mts @@ -15,7 +15,7 @@ export default { content.classList.add('page-transition-enter') setTimeout(() => { content.classList.remove('page-transition-enter') - }, 400) + }, 200) } } diff --git a/.vitepress/theme/style.css b/.vitepress/theme/style.css index 69052d6..29f4b3e 100644 --- a/.vitepress/theme/style.css +++ b/.vitepress/theme/style.css @@ -1,7 +1,7 @@ /* 页面切换过渡动效 */ .VPDoc, .VPContent { - transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; } .page-transition-leave { @@ -10,7 +10,7 @@ } .page-transition-enter { - animation: pageEnter 0.4s ease-out; + animation: pageEnter 0.2s ease-out; } @keyframes pageEnter {