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