Skip to content

Commit 845cc2c

Browse files
committed
feat(theme-default): add page transition
1 parent 2c2c280 commit 845cc2c

File tree

3 files changed

+33
-9
lines changed

3 files changed

+33
-9
lines changed

packages/@vuepress/theme-default/src/layouts/Layout.vue

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,28 @@
2727

2828
<Home v-if="$frontmatter.home" />
2929

30-
<Page v-else>
31-
<template #top>
32-
<slot name="page-top" />
33-
</template>
34-
<template #bottom>
35-
<slot name="page-bottom" />
36-
</template>
37-
</Page>
30+
<Transition v-else name="fade-slide-y" mode="out-in">
31+
<Page :key="$page.path">
32+
<template #top>
33+
<slot name="page-top" />
34+
</template>
35+
<template #bottom>
36+
<slot name="page-bottom" />
37+
</template>
38+
</Page>
39+
</Transition>
3840
</div>
3941
</template>
4042

4143
<script lang="ts">
42-
import { computed, defineComponent, onMounted, onUnmounted, ref } from 'vue'
44+
import {
45+
computed,
46+
defineComponent,
47+
onMounted,
48+
onUnmounted,
49+
ref,
50+
Transition,
51+
} from 'vue'
4352
import { useRouter } from 'vue-router'
4453
import { usePageFrontmatter, useThemeLocaleData } from '@vuepress/client'
4554
import Home from '../components/Home.vue'
@@ -57,6 +66,7 @@ export default defineComponent({
5766
Page,
5867
Navbar,
5968
Sidebar,
69+
Transition,
6070
},
6171
6272
setup() {

packages/@vuepress/theme-default/src/styles/index.styl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
@require './sidebar';
1616
@require './sr-only';
1717
@require './toc';
18+
@require './transitions';
1819

1920
// palette-stylus
2021
@require '~@temp/style';
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.fade-slide-y-enter-active {
2+
transition: all .3s ease;
3+
}
4+
5+
.fade-slide-y-leave-active {
6+
transition: all .3s cubic-bezier(1.0, 0.5, 0.8, 1.0);
7+
}
8+
9+
.fade-slide-y-enter-from
10+
.fade-slide-y-leave-to {
11+
transform: translateY(10px);
12+
opacity: 0;
13+
}

0 commit comments

Comments
 (0)