vue pc官网顶部导航栏组件

官网顶部导航分为一级导航和二级导航

导航的样子

文件的层级

router 文件层级

header 组件代码

<h1 class="logo-wrap"><router-link to="/"><img class="logo" :src="$config.company.logo" alt="" /><img class="sub-logo" :src="$config.company.subLogo" alt="" /></router-link></h1><!-- 导航 --><div class="menu-wrap"><ul><!-- 一级 --><liv-for="(item, index) in menus"@click="handle(index)":class="{ active: index == menuIndex }"class="menu-item"v-if="$isNull(item.meta.isMenuHide)"><a href="javascript:;" class="a" @click="menuClick(item.path)">{{item.meta.title}}</a><!-- 二级 --><span class="child-menu-group" v-if="!item.meta.isChildMenuHide"><spanclass="chil-item"v-for="(childItem, childIndex) in item.children"v-if="$isNull(childItem.meta.isMenuHide)"><ahref="javascript:;"class="child-a"@click="menuClick(childItem.path)">{{ childItem.meta.title }}</a></span></span></li></ul></div>

js 、css

 .logo-wrap {float: left;.logo,.sub-logo {}.sub-logo {display: inline-block;margin-left: 5px;padding-left: 5px;border-left: 1px #ffffff40 solid;}}  .menu-wrap {float: right;.menu-item.active {&:before {position: absolute;content: "";bottom: 0;left: 50%;width: 30px;transform: translate3d(-50%, 0, 0);border-bottom: 2px #ffffff solid;}}li {position: relative;display: inline-block;&.active {}.a {display: block;padding: 15px 20px;color: #fff;font-size: 16px;}.child-menu-group {display: none;position: absolute;left: -30px;min-width: 160px;padding: 5px 0;background-color: #ffffff;border-radius: 6px;text-align: center;box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);&:before {position: absolute;content: "";top: -6px;left: 50%;margin-left: -6px;width: 0;height: 0;border-left: 4px solid transparent;border-right: 4px solid transparent;border-bottom: 8px solid #ffffff;}.chil-item {position: relative;display: block;&::after {position: absolute;z-index: 1;top: 0;left: 0;content: "";height: 100%;width: 0;background-image: @background-image;}@keyframes childItem {0% {width: 0;}100% {width: 100%;}}&:hover {&::after {animation: childItem 0.2s ease-out;width: 100%;}a {color: #ffffff;}}}.child-a {display: block;position: relative;z-index: 2;padding: 10px 0;}}&:hover {.child-menu-group {display: block;}}}}
 data() {return {menus: [],menuIndex: 0,isMenuDrawer: false,isMenuFixed: false};},created() {this.menus = this.$router.options.routes[1].children;console.log( this.menus)this.findRouter(this.$route.path);this.resetPath(this.$route.path);},mounted() {this.onScroll();},watch: {//监听路由变化$route(to, from) {this.isMenuFixed = false;this.resetPath(to.path);this.findRouter(to.path);}},methods: {findRouter(path) {var i = path.indexOf("/", 1);var pathTo = "";if(i == -1) {pathTo = path;} else {pathTo = path.substring(0, i);}var list = this.menus;var index = list.findIndex((item, index) => {return pathTo == item.path;});this.menuIndex = index;document.title = this.menus[this.menuIndex].meta.title},// 二级菜单移动端menuSwitch() {this.isMenuDrawer = true;},// 点击菜单menuClick(path) {this.isMenuDrawer = false;this.$router.push(path);},// 导航切换handle(index) {this.isMenuDrawer = false;this.menuIndex = index;document.title = this.menus[this.menuIndex].meta.title},//获取页面路由,导航添加activeresetPath(path) {var _menus = this.menus;for(var i in _menus) {if(_menus[i].path == path) {this.menuIndex = i;// 设置标题document.title = _menus[i].meta.title;}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/258274.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机毕业设计】java网上服装商城销售系统springboot+jsp

目前互联网上的网上销售系统每天以惊人的速度增加&#xff0c;网上购物越来越成为现代年轻人的首选&#xff0c;足不出门便能选购好自己称心如意的商品。基于Java术及MySQL数据库设计与实现一个网上服装销售系统&#xff0c;要求实现用户管理、服装管理、新闻公告管理、留言管理…

虾皮关键词广告怎么选

在虾皮&#xff08;Shopee&#xff09;平台上&#xff0c;关键词广告是提高商品曝光度和销量的有效手段。然而&#xff0c;选择合适的关键词对于广告效果至关重要。本文将为您提供一些建议&#xff0c;帮助您选择适合虾皮关键词广告的关键词。 先给大家推荐一款shopee知虾数据…

PyTorch2.0环境搭建

一、安装python并配置环境变量 1、打开python官网&#xff0c;下载并安装 Welcome to Python.org 下载 寻找版本&#xff1a;推荐使用3.9版本&#xff0c;或其他表中显示为安全&#xff08;security&#xff09;的版本 安装&#xff1a;&#xff08;略&#xff09; 2、配置环…

F5怎么样?从负载均衡到云原生的进阶之路

从Web时代开始至云原生时代的应用服务交付的市场&#xff0c;技术与人的变化就是关注的焦点。从单纯的Web负载均衡到复杂的企业应用交付&#xff0c;从单体应用到分布式、微服务架构&#xff0c;F5为企业技术架构更好、更优、更安全的运行做出了极大的努力。那么F5怎么样&#…

卷积神经网络中用1*1 卷积有什么作用或者好处呢?

一、来源&#xff1a;[1312.4400] Network In Network &#xff08;如果11卷积核接在普通的卷积层后面&#xff0c;配合激活函数&#xff0c;即可实现network in network的结构&#xff09; 二、应用&#xff1a;GoogleNet中的Inception、ResNet中的残差模块 三、作用&#x…

AWS KeyPair密钥格式转换PPK<>PEM

概述说明 PEM&#xff08;Privacy Enhanced Mail&#xff09;和PPK&#xff08;Putty Private Key&#xff09;都是与加密和安全相关的文件格式&#xff0c;通常用于存储私钥信息。它们在不同的上下文中使用&#xff0c;并且与不同的软件和协议相关联。 PEM&#xff08;Priva…

linux高级篇基础理论七(Tomcat)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xff1a;云计算技…

Java编程中通用的正则表达式(二)

正则表达式&#xff0c;又称正则式、规则表达式、正规表达式、正则模式或简称正则&#xff0c;是一种用来匹配字符串的工具。它是一种字符串模式的表示方法&#xff0c;可以用来检索、替换和验证文本。正则表达式是一个字符串&#xff0c;它描述了一些字符的组合&#xff0c;这…

高精度加法,减法,乘法,除法(下)(C语言)

前言 上一篇博客我们分享了高精度加法&#xff0c;减法,这一期我将为大家讲解高精度乘法和高精度除法。那让我们开始吧&#xff01; 对加法和减法感兴趣的话就点我 文章目录 1&#xff0c;乘法2&#xff0c;除法3&#xff0c;尾声 1&#xff0c;乘法 让我们想想我们平时做数学…

【Linux系统化学习】进程地址空间 | 虚拟地址和物理地址的关系

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Linux系统化学习 代码仓库&#xff1a;Gitee 目录 虚拟地址和物理地址 页表 进程地址空间 进程地址空间存在的意义 虚拟地址和物理地址 我们在学习C/C的时候肯定都见过下面这张有关于内存分布的图片&a…

人体关键点检测1:人体姿势估计数据集

人体关键点检测1&#xff1a;人体姿势估计数据集 目录 人体关键点检测1&#xff1a;人体姿势估计数据集 1.人体姿态估计 2.人体姿势估计数据集 &#xff08;1&#xff09;COCO数据集 &#xff08;2&#xff09;MPII数据集 &#xff08;3&#xff09;Human3.6M &#xf…

微软发布Orca2,“调教式”教会小规模大语言模型如何推理!

我们都知道在大多数情况下&#xff0c;语言模型的体量和其推理能力之间存在着正相关的关系&#xff1a;模型越大&#xff0c;其处理复杂任务的能力往往越强。 然而&#xff0c;这并不意味着小型模型就永远无法展现出色的推理性能。最近&#xff0c;奶茶发现了微软的Orca2公开了…