fix menu layout

This commit is contained in:
jxxghp
2023-09-19 13:04:35 +08:00
parent 751e823b8c
commit 7d500aedb5
3 changed files with 32 additions and 18 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "moviepilot", "name": "moviepilot",
"version": "1.2.2", "version": "1.2.2-1",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vite --host", "dev": "vite --host",
+11 -15
View File
@@ -17,7 +17,6 @@ const props = withDefaults(defineProps<Props>(), {
const { mdAndDown } = useDisplay() const { mdAndDown } = useDisplay()
const refNav = ref() const refNav = ref()
const route = useRoute() const route = useRoute()
const menuShow = ref(false)
watch( watch(
() => route.path, () => route.path,
@@ -43,26 +42,21 @@ function checkScreenSize() {
isLargeScreen.value = screenWidth >= 1024 isLargeScreen.value = screenWidth >= 1024
} }
// 在组件挂载时执行检查 // 在组件挂载时和窗口大小变化时执行检查
onMounted(() => { onMounted(() => {
checkScreenSize() checkScreenSize()
if (!isLargeScreen.value) { window.addEventListener('resize', checkScreenSize)
// 1秒后显示菜单 })
setTimeout(() => {
menuShow.value = true // 在组件销毁前移除窗口大小变化监听器
}, 1000) onBeforeUnmount(() => {
} window.removeEventListener('resize', checkScreenSize)
else {
// 立即显示菜单
menuShow.value = true
}
}) })
</script> </script>
<template> <template>
<Component <Component
:is="props.tag" :is="props.tag"
v-show="menuShow"
ref="refNav" ref="refNav"
class="layout-vertical-nav touch-none" class="layout-vertical-nav touch-none"
:class="[ :class="[
@@ -92,15 +86,17 @@ onMounted(() => {
</slot> </slot>
<slot name="nav-items" :update-is-vertical-nav-scrolled="updateIsVerticalNavScrolled"> <slot name="nav-items" :update-is-vertical-nav-scrolled="updateIsVerticalNavScrolled">
<PerfectScrollbar <PerfectScrollbar
v-if="isLargeScreen"
tag="ul" tag="ul"
class="d-none d-lg-block nav-items" class="nav-items"
:options="{ wheelPropagation: false }" :options="{ wheelPropagation: false }"
@ps-scroll-y="handleNavScroll" @ps-scroll-y="handleNavScroll"
> >
<slot /> <slot />
</PerfectScrollbar> </PerfectScrollbar>
<ul <ul
class="d-lg-none overflow-auto nav-items" v-if="!isLargeScreen"
class="nav-items"
> >
<slot /> <slot />
</ul> </ul>
+20 -2
View File
@@ -40,6 +40,22 @@
width: 100%; width: 100%;
} }
/* router view transition fade-slide */
.fade-slide-leave-active,
.fade-slide-enter-active {
transition: all 0.6s;
}
.fade-slide-enter-from {
opacity: 0;
transform: translateY(-45px);
}
.fade-slide-leave-to {
opacity: 0;
transform: translateY(45px);
}
.grid-info-card { .grid-info-card {
grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
padding-block-end: 1rem; padding-block-end: 1rem;
@@ -90,8 +106,10 @@
border-radius: 3px; border-radius: 3px;
background: rgb(var(--v-theme-perfect-scrollbar-thumb)); background: rgb(var(--v-theme-perfect-scrollbar-thumb));
-webkit-box-shadow: inset 0 0 10px rgba(0,0,0,0.2); -webkit-box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
&:hover{ @media(hover){
background: #a1a1a1; &:hover{
background: #a1a1a1;
}
} }
} }