vue门户系统实现顶部菜单下拉效果

news2024/10/6 20:27:35

门户系统实现顶部菜单下拉效果请添加图片描述

组件封装

直接上代码,已经封装成组件,只要传输正确的数据格式即可使用。

<template>
<div class="head-v3" id="index">
	<div class="navigation-up">
		<div class="navigation-inner">
			<div class="navigation-v3">
				<ul>
					<ul>
						<li v-for="i in nevigatelist" :_t_nav="i.nav" :key="i.nav">
							<div @click="!i.isChil?routerClick(i) : ''">
								<h2>
									<span href="#">{{i.label}}</span>
								</h2>
							</div>
						</li>
					</ul>
				</ul>
			</div>
		</div>
	</div>
	<div class="navigation-down">
		<div v-for="i in menuList" :id="i.remark" :class="i.remark == 'example' ? ['nav-down-menu','menu-1'] : ['nav-down-menu','menu-3','menu-1']" style="display: none;" :_t_nav="i.remark" :key="i.id">
			<div class="navigation-down-inner">
				<dl v-for="item in i.children" :key="item.id">
					<div v-if="item.children.length > 0">
						<dt v-if="item.name !=''">{{item.name}}</dt>
						<dd v-for="y in item.children" :key="y.name">
							<span class="link hoverbtn" @click="routerClick(y)">{{y.name}}</span>
						</dd>
					</div>
					<div v-else>
						<dd>
							<span class="link hoverbtn" @click="routerClick(item)">{{item.name}}</span>
						</dd>
					</div>
				</dl>
			</div>
			
		</div>
	</div>
</div>
</template>

<script>

export default {
	name: "MenuCom",
	props: {
		menuList: Array
	},	
	data() {
		return {
		 	//顶部菜单显示的数组
			nevigatelist:  [{
				id: '1',//排序
				nav: 'home',//自定义名称
				label: '平台介绍',//中文名称
				isChil: false,//如果是一级菜单直接跳转
				path: "/home" //路由
			}, {
				id: '2',
				nav: 'example',
				label: '应用实例',
				isChil: true,
				path: "/home"
			}, {
				id: '3',
				nav: 'application',
				label: '应用组件',
				isChil: true,
				path: "/home"
			}, {
				id: '4',
				nav: 'shared',
				label: '共享服务',
				isChil: true,
				path: "/home"
			}, {
				id: '5',
				nav: 'colophon',
				label: '版本记录',
				isChil: true,
				path: "/home"
			}, {
				id: '6',
				nav: 'onlinetest',
				label: '在线调试',
				isChil: false,
				path: "/onLineTest"
			}, {
				id: '7',
				nav: 'onlinestatistics',
				label: '接口调试统计',
				isChil: false,
				path: "/onLineStatistics"
			}],
			//下拉菜单显示的数组,如果是固定的下拉内容直接在data里写即可以
			// menuList:[]
		}
	},
	created() {},
	mounted() {
		console.log($('[_t_nav]'))
		var qcloud = {};
		//因为数据是组件间传输所以,需要使用定时器,不然结构已经加载完,数据都没有回填,导致没有赋值相关属性
		setTimeout(() => {
			$('[_t_nav]').hover(function() {
				// debugger
				// console.log($('[_t_nav]'))
				var _nav = $(this).attr('_t_nav');
				clearTimeout(qcloud[_nav + '_timer']);
				qcloud[_nav + '_timer'] = setTimeout(function() {
					$('[_t_nav]').each(function() {
						$(this)[_nav == $(this).attr('_t_nav') ? 'addClass' : 'removeClass']('nav-up-selected');
					});
					$('#' + _nav).stop(true, true).slideDown(200);
				}, 150);
			},function() {
				var _nav = $(this).attr('_t_nav');
				clearTimeout(qcloud[_nav + '_timer']);
				qcloud[_nav + '_timer'] = setTimeout(function() {
					$('[_t_nav]').removeClass('nav-up-selected');
					$('#' + _nav).stop(true, true).slideUp(200);
				}, 150);
			});
		},500);
	},
	methods:{
		//这里是我实际开发的路由跳转,需要根据实际开发修改
		routerClick(data) {
			// 接口页
			console.log("data",data)
			if (data.menuType == 2) {
				this.$router.push({
					name: 'Interface',
					query: {
					pdfUrl: data.path,
					name: data.name
					}
				});
				return;
			}
			// 站外链接
			if (data.isNewTab && data.menuType == 1 ) {
				window.open(data.path, '_blank');
				return;
			}
			this.$router.push({
				path: data.path,
			});
		}
	}
}
</script>
<style lang="scss" scoped>
.head-v3{position:relative;z-index:100;width:100%;}
.head-v3 .navigation-inner{margin:0 auto;width:100%;position:relative}
.navigation-up{height:60px;margin-left: 280px;}
.navigation-up .navigation-v3{float:left;_margin-left:10px}
.navigation-up .navigation-v3 ul{float:left}
.navigation-up .navigation-v3 li{float:left;font:normal 13px/59px "microsoft yahei";color:#fff}
.navigation-up .navigation-v3 .nav-up-selected{background:#344157}
.navigation-up .navigation-v3 .nav-up-selected-inpage{background:#202833}
.navigation-up .navigation-v3 li h2{font-weight:normal;padding:0;margin:0}
.navigation-up .navigation-v3 li h2 span{padding:0 10px;color:#fff;display:inline-block;height:60px;font-family:"microsoft yahei";cursor:pointer}

.navigation-down{position:absolute;top:60px;left:0px;width:100%;z-index: 9999;}
.navigation-down .nav-down-menu{width:100%;margin:0;background:#344157;position:absolute;top:0px}
.navigation-down .nav-down-menu .navigation-down-inner{margin:auto;width:1200px;position:relative;display: flex;
    justify-content: center;}
.navigation-down .nav-down-menu dl{float:left;margin:18px 80px 18px 0}
.navigation-down .menu-1 dl{margin:30px 30px 30px 0}
.navigation-down .menu-1 dt{width:210px;font:normal 16px "microsoft yahei";font-weight: bold; color:#fff;padding-bottom:10px;border-bottom:1px solid #61789e;margin-bottom:10px}
.navigation-down .menu-1 dd {margin-bottom: 2px;}
.navigation-down .menu-1 dd span{color:#fff;font:normal 14px/30px "microsoft yahei";cursor:pointer}
.navigation-down .menu-1 dd span:hover{color:#60aff6}
//.navigation-down .menu-1 dd a{color:#fff;font:normal 14px/30px "microsoft yahei"}
//.navigation-down .menu-1 dd a:hover{color:#60aff6}
//.navigation-down .menu-2 dd a,.navigation-down .menu-3 dd a{color:#fff;font:normal 16px "microsoft yahei"}

</style>

jQuery插件引入

另外组件使用了jQuery,我是直接在index.html里引入jQuery.js ,版本是jQuery v1.10.2
在这里插入图片描述
以下就是全部内容,积累中分享,积累中学习!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java SSM 重制版(二)SpringMvc

SpringMVC基础 进入之前&#xff1a;《Spring核心内容》《JavaWeb》《JDK9-17新特性篇》 在前面学习完Spring框架技术之后&#xff0c;差不多会出现两批人&#xff1a;一批是听得云里雾里&#xff0c;依然不明白这个东西是干嘛的&#xff1b;还有一批就是差不多理解了核心思想…

大的zip文件使用7-zip软件分卷压缩和还原

使用7-zip软件进行分卷压缩和还原 1、7-zip软件的安装 官网&#xff1a;https://www.7-zip.org。 2、将比较大的zip文件拆分 设置压缩格式zip,分卷最大150M 拆分后 3、还原 还原后&#xff0c;又重新生成了原zip文件

qt各控件总结

qt控件又称组件或者部件&#xff0c;指用户看到的所有可视化界面以及界面中的各个元素&#xff0c;比如按钮&#xff0c;文本框&#xff0c;输入框等。1.QMainWindow类生成的窗口自带菜单栏&#xff0c;工具栏和状态栏&#xff0c;中央区域还可添加多个控件&#xff0c;常用来作…

Python_关于python2的encode(编码)和decode(解码)的使用

目录 python执行过程的编解码 encode&decode 中文乱码解决方法 常见问题 格式化带有中文的字符串报错 带有中文的字符串反转后乱码 在使用Python2时&#xff0c;我们习惯于在文件开头声明编码 # coding: utf-8 不然在文件中出现中文&#xff0c;运行时就会报错 Syn…

查看和指定GPU服务器显卡训练模型

查看和指定GPU服务器显卡 1.查看显卡2.间隔查看GPU使用情况3.查看当前显卡信息4. 使用os指定使用的显卡 1.查看显卡 nvidia-smiGPU&#xff1a;GPU 编号&#xff1b;与实际编号不一定一致 Name&#xff1a;GPU 型号&#xff1b; Persistence-M&#xff1a;持续模式的状态。持续…

【TEVC 2023】用于进化计算的知识学习 + 进化计算(Evolutionary computation (EC) )其中的一些概念

Knowledge Learning for Evolutionary Computation 进化计算&#xff08;Evolutionary computation (EC) &#xff09;是一种从自然进化和群体智能行为&#xff08;swarm intelligence behaviors&#xff09;中汲取灵感的元启发式算法。 目前&#xff0c;EC以其解决优化问题的…

《Redis 核心技术与实战》课程学习笔记(二)

数据结构&#xff1a;快速的 Redis 有哪些慢操作 数据库这么多&#xff0c;为啥 Redis 能有这么突出的表现呢&#xff1f; 一方面&#xff0c;因为它是内存数据库&#xff0c;所有操作都在内存上完成&#xff0c;内存的访问速度本身就很快。另一方面&#xff0c;因为&#xff…

SQL入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

导读&#xff1a; SQL语言有40多年的历史&#xff0c;从它被应用至今几乎无处不在。我们消费的每一笔支付记录&#xff0c;收集的每一条用户信息&#xff0c;发出去的每一条消息&#xff0c;都会使用数据库或与其相关的产品来存储&#xff0c;而操纵数据库的语言正是 SQL &…

vue页面中一个小列表中多选框的选中状态的两种设置方法

第一种方法:所有类型都是固定的、后台提供了选中状态的接口(页面进入时默认展示所有类型和类型的选中状态 思路: 1、列出所有类型同时与后台规定好每种类型的id与对应的名称 2、在mounted中执行获取后台给定的选中状态(包含1个或多个的id数组) 3、将得到的结构绑定到el-ch…

单元测试基础

一、什么是单元测试&#xff1a; 单元测试是指&#xff0c;对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作&#xff0c;这里的最小可测试单元通常是指函数或者类&#xff1b;单元测试属于最严格的软件测试手段&#xff0c;是最接近代码底层实现…

剑指 Offer 14- II: 剪绳子 II

这道题不能使用动态规划来解决&#xff0c;因为会越界。用贪心算法找规律可以得到答案&#xff08;3越多越好&#xff0c;小于等于4取本身的值&#xff09; 这道题错的原因在于res在存储过程中会越界&#xff0c;最轻微的上溢是 INT_MAX 1 &#xff1a;结果是 INT_MIN。 最严重…

C++学习笔记-第10单元 模板初步

第10单元 模板初步 文章目录 第10单元 模板初步单元导读10.1 模板与泛型编程10.1.1 元编程与泛型编程10.1.2 初识模板 10.2 函数模板10.2.1 函数模板10.2.2 函数模版实例化 10.3 排序示例与泛型化10.3.1 例子&#xff1a;选择排序10.3.2 将一个函数泛型化 10.4 类模板10.4.1 类…

基于matlab使用深度学习从分割图生成图像(附源码)

一、前言 此示例演示如何使用 pix2pixHD 条件生成对抗网络 &#xff08;CGAN&#xff09; 从语义分割映射生成场景的合成图像。 Pix2pixHD [1] 由两个同时训练的网络组成&#xff0c;以最大限度地提高两者的性能。 生成器是一种编码器-解码器风格的神经网络&#xff0c;可从语…

设置云服务器和配置docker

一、设置云服务器 刚租完服务器&#xff0c;直接利用公网ip登录此时进入到的是root目录下 ssh root公网ip 但是root的权限太大&#xff0c;一般做项目不会在root路径下直接操作&#xff0c;会创建一个子用户&#xff0c;一台服务器可以创建多个子用户&#xff0c;就像一个大…

通用二进制方式安装Mysql

一、去官网下载MySQL glibc版本 示例环境为CentOS 7.9版本&#xff0c;要安装的Mysql版本为5.7 1.选择版本下载到自己本地 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 2.将下载的tar包上传到自己的CentOS虚拟主机上 传输完成后&#xff0c;查看确认一下 …

Tomcat相关

1. 运行项目 将java项目打包为war或者war所对应的文件夹&#xff0c;放置于tomcat的webapps目录下。其实tomcat运行时会解压war到项目中并运行class文件&#xff0c;延伸开来&#xff0c;为啥不能用jar包&#xff0c;因为jar可能可以表示项目但也能表示依赖&#xff0c;tomcat…

Linux 内核和驱动开发工程师的发展前景怎么样?

或许这样的标题&#xff0c;应该是由像Linus或Greg KH这样的大师级的高手才有资格写的吧。但是作为我来说&#xff0c;也许我更想把这个标题作为一个疑问句来使用&#xff0c;整理一下自己的认识&#xff0c;用来勉励自己&#xff0c;和大家一起努力实现这个目标。认识肤浅的地…

4.51ue4:savegame

1.创建savegame&#xff0c;蓝图搜索savegame创建 2.ue4是类似于计算机磁盘读取和内存响应的方式进行保存数据&#xff0c;又称序列化。 详解&#xff1a; 序列化时类似于&#xff1a;从内存保存数据到磁盘的过程&#xff0c;是将数据进行序列化存入磁盘。 读取数据就是反序…

社区说|浅谈 WorkManager 的设计与实现:系统概述

什么是 社区说 ? 反思 系列博客是一种看似 “内卷” &#xff0c;但却 效果显著 的学习方式&#xff0c;该系列起源和目录请参考 这里 。 困境 作为一名 Android 开发者&#xff0c;即使你没有用过&#xff0c;也一定对 WorkManager 耳熟能详。 自2018年发布以来&#xff0c…

设计模式第22讲——访问者模式(Visitor)

目录 一、什么是访问者模式 二、角色组成 三、优缺点 四、 应用场景 4.1 生活场景 4.2 Java场景 五、代码实现 5.0 UML类图 5.1 抽象访问者——Visitor 5.2 具体访问者——Tourist 5.3 抽象元素——Spot 5.4 具体元素——View、Relic 5.5 对象结构——SpotCollecti…