mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 23:56:42 +08:00
fix menu layout
This commit is contained in:
+1
-1
@@ -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",
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user