Menu is closing on smartphones now when a menu item is clicked

This commit is contained in:
Torsten Schulz
2024-07-05 13:13:53 +02:00
parent 0f113adb13
commit c03df4f388

View File

@@ -5,15 +5,15 @@
</button>
<ul v-if="isMenuOpen || windowWidth > 768">
<li v-for="item in menu" :key="item.name" @click="toggleSubmenu(item.name)">
<router-link :to="item.link" v-if="item.link">
<router-link :to="item.link" v-if="item.link" @click="closeMenu">
{{ item.name }}
</router-link>
<span v-if="!item.link">
<span v-if="!item.link" class="pointer">
{{ item.name }}
</span>
<transition name="fade">
<div v-if="item.submenu && item.submenu.length && (isSubmenuOpen[item.name] || windowWidth > 768)" class="dropdown-content">
<router-link v-for="subitem in item.submenu" :key="subitem.name" :to="subitem.link">
<router-link v-for="subitem in item.submenu" :key="subitem.name" :to="subitem.link" @click="closeMenu">
{{ subitem.name }}
</router-link>
</div>
@@ -60,6 +60,13 @@ export default {
}
};
const closeMenu = () => {
isMenuOpen.value = false;
Object.keys(isSubmenuOpen).forEach(key => {
isSubmenuOpen[key] = false;
});
}
const handleResize = () => {
windowWidth.value = window.innerWidth;
if (windowWidth.value > 768) {
@@ -84,7 +91,8 @@ export default {
windowWidth,
menu,
toggleMenu,
toggleSubmenu
toggleSubmenu,
closeMenu
};
}
};
@@ -210,10 +218,14 @@ export default {
opacity: 1;
visibility: visible;
display: none;
padding-left: 1em;
}
.navbar li:hover .dropdown-content {
display: block;
}
}
.pointer {
cursor: pointer;
}
</style>