网页标题切换 原创
创建
- 在
docs\.vitepress\theme\components\
目录下创建TitleChange.vue
文件,并添加以下代码
vue
<script setup lang="ts">
import { ref, onBeforeUnmount } from "vue";
import { useEventListener } from "vitepress-theme-teek";
const props = defineProps({
hiddenTitle: {
type: String,
default: "w(゚Д゚)w 不要走!再看看嘛!",
},
returnTitle: {
type: String,
default: "♪(^∇^*)欢迎回来!",
},
});
const originTitle = ref(document.title);
const titleTimer = ref<ReturnType<typeof setTimeout>>();
const stopListener = ref<() => void>();
const handleVisibilityChange = () => {
if (document.hidden) {
document.title = props.hiddenTitle;
clearTimeout(titleTimer.value);
} else {
document.title = props.returnTitle;
titleTimer.value = setTimeout(() => {
document.title = originTitle.value;
}, 2000);
}
};
stopListener.value = useEventListener(
document,
"visibilitychange",
handleVisibilityChange
);
onBeforeUnmount(() => {
stopListener.value?.();
clearTimeout(titleTimer.value);
});
</script>
使用
- 在
docs\.vitepress\theme\components\
目录下的TeekLayoutProvider.vue
引入并使用
vue
<script setup lang="ts" name="TeekLayoutProvider">
// @ts-ignore
import TitleChange from "./TitleChange.vue"; //导入网页标题变化
</script>
<template>
<Teek.Layout>
<template #layout-top>
<!--网页标题切换组件 -->
<TitleChange />
</template>
其他组件...
</Teek.Layout>
</template>