用vue3写二级导航

模拟的重庆红岩格式和布局

先上效果图

代码如下,图片需要自己导入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
     *{
         margin: 0;
         padding: 0;
     }
     body{
         width: 1200px;
         height: 80px;
     }
     li{
         list-style-type: none;
     }
     #app>li{
         list-style-type: none;
         float: left;
         text-align: center;
         position: relative;
     }
     #app li a:hover{
         color: #fff;
         background-image: url(./nav.png);
     }
     #app li ul{
         position: absolute;
         top: 80px;
     }
     /* 控制整个移动 */
     #app{
         margin-left: 100px;
         width: 1100px;
         height: 80px;
         margin-top: 150px;
     }
    a{
         text-decoration: none;
         display: block;
         width: 120px;
         height: 80px;
         line-height: 80px;
         border: 1px solid #fff;
         background-color: red;
         border-width: 0 0 0 0;
         color: #fff;
         font-size: 20px;
         font-weight: bold;
     }

    
			.rotation{
				width: 1200px;
				height: 400px;
			}
			.rotation img{
				width: 1290px;
				height: 400px;
                margin-left: -100px;
			}
			.prev,.next{
				height: 50px;
				position: absolute;
				top: 300px;
                margin-top: 100px;
				cursor: pointer;
			}
			.prev{
				left: 0px;
			}
			.next{
				right: 0px;
			}
            #box{
                height: 80px;
                width: 1400px;
                z-index: -2;
                margin-top:0px ;
                position: absolute;
                background-color: red;
            }
            .img4{
               margin-top: -130px;
               position: absolute;
               margin-left: 100px;
           }
           .img3{
               margin-top: -130px;
               position: absolute;
               margin-left: 900px;
           }
           .tel{
            margin-top: -90px;
            position: absolute;
            margin-left: 640px;
            font-size: 10px;
           }
           .serach{
                margin-top: -60px;
                position: absolute;
                margin-left: 1000px;
                font-size: 10px;
                height: 20px;
                width: 100px;
           }
           .button{
                margin-top: -60px;
                position: absolute;
                margin-left: 1105px;
                height: 25px;
                color: #fff;
                background-color: rgb(170, 16, 16);
           }
      [v-clock]{
          display: none;
      }
    </style>
    <script src="https://unpkg.com/vue@3"></script>
</head>
<body>
    <div id="box"></div>
    <img src="./3.png" class="img3">
    <img src="./4.png" class="img4">
    <p class="tel"style="color: red;">设为首页 | 加入收藏 | 热线:023-65312300(沙坪坝区)023-63303457(渝中片区)| English</p>
    <input type="serach" name="" class="serach" placeholder="请输入搜索关键字">
    <button class="button">搜索</button>
    <div id="app" v-cloak></div>
    <template id="root">
            <li v-for="item in view" @mouseover="item.show=!item.show" @mouseout="item.show=!item.show">
                    <a :href="view.url">
                    {{item.name}}
                    </a>
                <ul v-show="item.show">
                    <li v-for="items in item.view2">
                        <a :href="items.url">
                            {{items.name}}
                        </a>
                    </li>
                </ul>
            </li>

            <input class="prev" type="button" value="<" v-on:click="prev()" />
			<div class="rotation">
				<img :src="imgageName[index]" />
			</div>
			<input class="next" type="button"value=">" v-on:click="next()" />

   </template>
        
    <script>
       Vue.createApp({
            template:`#root`,
            data() {
                return{
                     view:[
                            {name:"首页",url:"#",show:false,view2:[]},
                            {name:"关于红岩",url:"#",show:false,view2:[
                                {name:"红岩文化",url:"#"},
                                {name:"博物馆机构",url:"#"},
                                {name:"历史沿革",url:"#"}
                            ]},
                            {name:"公告动态",url:"#",show:false,view2:[
                                {name:"文博信息",url:"#"},
                                {name:"政务平台",url:"#"},
                                {name:"公告",url:"#"},
                                {name:"专题报道",url:"#"}
                            ]},
                            {name:"馆藏精品",url:"#",show:false,view2:[
                                {name:"一级文物",url:"#"},
                                {name:"二级文物",url:"#"},
                                {name:"三级文物",url:"#"}
                            ]},
                            {name:"陈列展览",url:"#",show:false,view2:[
                                {name:"虚拟展览",url:"#"},
                                {name:"基本陈列",url:"#"},
                                {name:"复原陈列",url:"#"},
                                {name:"临时展览",url:"#"},
                                {name:"展览交流",url:"#"}
                            ]},
                            {name:"研究开发",url:"#",show:false,view2:[
                                {name:"历史研究",url:"#"},
                                {name:"艺术创作",url:"#"},
                                {name:"影音在线",url:"#"},
                                {name:"文创产品",url:"#"}
                            ]},
                            {name:"公共教育",url:"#",show:false,view2:[
                                {name:"党性教育",url:"#"},
                                {name:"爱国主义教育",url:"#"},
                                {name:"研学实践教育",url:"#"},
                                {name:"科普教育",url:"#"}
                            ]},
                            {name:"参观服务",url:"#",show:false,view2:[
                                {name:"景点介绍",url:"#"},
                                {name:"服务内容",url:"#"},
                                {name:"网上预约",url:"#"},
                                {name:"志愿服务",url:"#"}
                            ]},
                            {name:"网上预约",url:"#",show:false,view2:[]},
                        ],
              //引入照片
                imgageName:['./1.jpg','./2.jpg']
                ,index:0
                }
            },

            methods:{
                //调用轮番图变化的函数
					next(){
						this.index++;
						if(this.index >= this.imgageName.length){
							this.index=0;
						}
					},
					prev(){
						this.index--;
						if(this.index < 0){
							this.index=this.imgageName.length-1;
						}
					}
				}

       }).mount('#app')
   </script>
</body>
</html>

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 3中实现二级路由非常简单。你可以使用Vue Router来管理你的路由。下面是一个简单的示例,展示如何实现二级路由: 首先,安装Vue Router: ``` npm install vue-router@4 ``` 然后,在你的项目中创建一个router.js文件,并添加以下代码: ```javascript import { createRouter, createWebHistory } from 'vue-router'; // 导入你的组件 import Home from './components/Home.vue'; import About from './components/About.vue'; import Contact from './components/Contact.vue'; import Subpage from './components/Subpage.vue'; const routes = [ { path: '/', component: Home, }, { path: '/about', component: About, }, { path: '/contact', component: Contact, }, { path: '/subpage', component: Subpage, }, ]; const router = createRouter({ history: createWebHistory(), routes, }); export default router; ``` 在上面的代码中,我们导入了需要使用的组件,并定义了路由的路径和对应的组件。 接下来,在你的main.js文件中,导入router.js,并将它添加到Vue实例中: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app'); ``` 现在,你可以在App.vue文件中添加一个路由出口,用于显示不同路径对应的组件: ```html <template> <div id="app"> <router-view></router-view> </div> </template> ``` 最后,你可以在App.vue中的导航栏或其他组件中添加链接,以便在不同的路径之间进行导航: ```html <template> <nav> <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> <router-link to="/contact">Contact</router-link> <router-link to="/subpage">Subpage</router-link> </nav> </template> ``` 现在,当你访问不同的路径时,对应的组件将会被加载并显示在页面上。 希望这可以帮助到你实现Vue 3中的二级路由!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值