| | |
| | | <img src="@/assets/logo/logo.png" alt="云游四方" class="logo" /> |
| | | <span class="text-xl font-bold">云游四方</span> |
| | | </a> |
| | | <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" |
| | | aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> |
| | | <!-- <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" |
| | | aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation" > |
| | | <span class="navbar-toggler-icon"></span> |
| | | </button> --> |
| | | <button class="navbar-toggler btn-sm" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" |
| | | aria-controls="navbarNav" aria-expanded="false" aria-label="导航菜单" ref="navbarToggler"> |
| | | <span class="navbar-toggler-icon"></span> |
| | | </button> |
| | | <div class="collapse navbar-collapse" id="navbarNav"> |
| | | <!-- <ul class="navbar-nav"> |
| | | <li class="nav-item"> |
| | | <a |
| | | class="nav-link active" |
| | | aria-current="page" |
| | | href="#" |
| | | @click.prevent="navigateTo('/')" |
| | | >首页</a |
| | | > |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" href="#" @click.prevent="navigateTo('/product')" |
| | | >产品中心</a |
| | | > |
| | | </li> |
| | | <li class="nav-item"> |
| | | <a class="nav-link" href="#" @click.prevent="navigateTo('/about#third-other')" |
| | | >关于我们</a> |
| | | </li> |
| | | </ul> --> |
| | | <ul class="navbar-nav"> |
| | | <li v-for="item in navItems" :key="item.label" class="nav-item"> |
| | | <a class="nav-link" href="#" :class="{ active: isActive(item.path) }" |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref } from 'vue'; |
| | | import { useRouter, useRoute } from "vue-router"; |
| | | |
| | | const router = useRouter(); |
| | |
| | | // 可根据需要改为更精确的匹配逻辑 |
| | | return route.fullPath === targetPath || route.path === targetPath.split('#')[0]; |
| | | }; |
| | | |
| | | // navbarToggler 引用,用于手动触发点击事件 |
| | | const navbarToggler = ref(null); |
| | | const navigateTo = (path) => { |
| | | if (path.includes('#')) { |
| | | const [basePath, hash] = path.split('#'); |
| | |
| | | } else { |
| | | router.push(path); |
| | | } |
| | | if (navbarToggler.value) { |
| | | navbarToggler.value.click(); |
| | | } |
| | | |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | </script> |
| | | |
| | | <style scoped> |