jQuery实现垂直折叠导航栏

news/2024/7/10 23:00:51 标签: html, jquery, css

实现思路

本垂直折叠导航栏主要通过css实现简单的菜单样式布局,将第二菜单通过display:none;隐藏起来,再通过jQuery给第第二菜单ul标签设置slideToggle()方法,来达到第二菜单的拉伸收缩。
实现效果
在这里插入图片描述

实现代码

html"><!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQuery折叠导航栏</title>
		<style type="text/css">css">
		*{
			margin: 0;
			padding: 0;
		}
		body{
			font-family: 'Open Sans', Arial, Helvetica, Sans-serif, Verdana, Tahoma;
		}
		a{
			color: #b63b4d;
			text-decoration: none;
			font-family:"微软雅黑";
		}
		.nav{
			list-style: none;
			width: 200px;
			margin: 100px 20px;/*改变菜单到页面的位置*/
			
		}
		.nav>li{
			position: relative;
			border: 1px solid #000;
			line-height: 35px;
			border-bottom: none;
		}
		.nav>li:last-child{
			border-bottom: 1px solid #000;
			border-bottom-left-radius:10px;
			border-bottom-right-radius:10px;
		}
		.nav>li:first-child{
			border-top-left-radius:10px;
			border-top-right-radius:10px;
		}
		.nav>li>a{
			margin-left:5px;
			color: #000;
			font-weight: bold;
		}
		.nav>li>span{
			font-size:20px;
			float: right;
			position: absolute;
			right: 50px;
		}
		.nav>li>ul{
			list-style: none;
			background-color:skyblue;
			border-bottom: 1px solid #fff;
			display: none;
			
		}
		.nav>li>ul>li{
			border-bottom: 1px solid white;
		}
		.nav>li>ul>li:hover{
			background-color: red;
			cursor: pointer;
		}
		.nav>li>ul>li>a{
			color:white;
			box-sizing: border-box;
			margin-left: 20px;
		}
		.deg{
			transform: rotate(90deg);
		}
		</style>
		<!-- 引入jQuery库 -->
		<script src="jquery.js" type="text/javascript" charset="utf-8"></script>
		<!-- 如果没有下载jQuery库可以用网上的jQuery库 -->
<!-- <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> -->
         <!-- jQuery实现代码-->
		<script type="text/javascript">
			$(function(){
				//给第一菜单设置点击事件
				$(".nav>li").click(function(){
					//获取第二菜单
					var sub= $(this).children("ul");
					//将第二菜单设置上下滑动动画
					sub.slideToggle(500);
					//给>箭头添加类转90度,向下
					$(this).children("span").toggleClass("deg");
					//点击一个菜单的时候,把它的兄弟元素的第一菜单收起来
					$(this).siblings().children("ul").slideUp(500);
					//箭头移除90度旋转的的类
					$(this).siblings().children("span").removeClass("deg");
				});
			});
		</script> 
	</head>
	<body>
	<ul class="nav">
		<li><a href="#">风景</a><span>></span>
		<ul>
			<li><a href="#">天空</a></li>
			<li><a href="#">大树</a></li>
			<li><a href="#">星星</a></li>
			<li><a href="#">月亮</a></li>
			<li><a href="#">太阳</a></li>
		</ul>
		</li>
		<li><a href="#">美食</a><span>></span>
		<ul>
			<li><a href="#">辣子鸡</a></li>
			<li><a href="#">螺蛳粉</a></li>
			<li><a href="#">老友粉</a></li>
			<li><a href="#">炸鸡</a></li>
			<li><a href="#">波波茶</a></li>
		</ul>
		</li>
		<li><a href="#">乐趣</a><span>></span>
		<ul>
			<li><a href="#">想你</a></li>
			<li><a href="#">一起</a></li>
			<li><a href="#">看看</a></li>
			<li><a href="#">美丽</a></li>
			<li><a href="#">星空</a></li>
		</ul>
		</li>
	
		<li><a href="#">心愿</a><span>></span>
		<ul>
			<li><a href="#">想你</a></li>
			<li><a href="#">在一起</a></li>
			<li><a href="#">吃饭</a></li>
			<li><a href="#">框架</a></li>
			<li><a href="#">做梦</a></li>
		</ul>
		</li>
	
		<li><a href="#">我们</a><span>></span>
		<ul>
			<li><a href="#">没有</a></li>
			<li><a href="#">我们</a></li>
			<li><a href="#">只有</a></li>
			<li><a href="#">后来</a></li>
			<li><a href="#">的我们</a></li>
		</ul>
		</li>
		<li><a href="#">未来</a><span>></span>
		<ul>
			<li><a href="#">想你</a></li>
			<li><a href="#">和你</a></li>
			<li><a href="#">一起</a></li>
			<li><a href="#">吃饭</a></li>
			<li><a href="#">看电影</a></li>
		</ul>
		</li>
	</ul>
	</body>
</html>


http://www.niftyadmin.cn/n/855663.html

相关文章

CSS图片文字排版03

实现思路 主要技术主要使用CSS属性visibility: hidden;将p标签文字隐藏起来&#xff0c;再通过&#xff1a;hover选择器来改变类card的高度&#xff0c;将p标签文字visibility: visible;显示出来。为了更好理解&#xff0c;没有将CSS和HTML分离&#xff0c;需要的话&#xff0…

Ajax基础:get和post请求方式的实现

Ajax简介 Ajax 即“Asynchronous Javascript And XML”&#xff08;异步 JavaScript 和 XML&#xff09;&#xff0c;是指一种创建交互式、快速动态网页应用的网页开发技术&#xff0c;无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。 实现步骤 1.创建aj…

$.ajax()实现ajax语法格式及完整案例

$.ajax()代码模板 jQuery实现ajax语法为&#xff1a;$.ajax({})&#xff0c;其中{}为对象&#xff0c;对象里面的key键是固定的&#xff0c;比如: 1、type: 表示请求方式&#xff0c;一般为post或get 2、url表示请求的地址 3、contentType表示发送信息至服务器时内容编码类型…

ajax跨域的几种实现方式

什么是跨域 同协议&#xff0c;同ip&#xff0c;同端口视为一个域&#xff0c;当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。 原生态ajax跨域实现 通过动态创建script标签通过src发送跨域地址&#xff0c;通过定义function XXX&#xff08;&…

less环境搭建及VScode使用less(详细教程)

less安装步骤 1、下载安装node.js 2、下载安装less 3、打开VScode软件安装插件 Easy LESS 4、编辑保存.less文件&#xff0c;会在对应的目录下生成对应的.css文件 下载安装node.js node.下载地址&#xff1a;https://nodejs.org/en/ 首先打开node.js网址&#xff0c;点击下载…

前端超级实用的几个主流框架

一、Bootstrap框架 Bootstrap官网及下载网站: https://www.bootcss.com/ Bootstrap实用功能: 大部分网页样式&#xff08;导航栏&#xff0c;图片&#xff0c;按钮&#xff0c;表单&#xff09;&#xff0c;栅格系统&#xff0c;轮播图&#xff0c;下拉菜单 等等 Bootstrap简…

vue学习记录:mvc与MVVM区别、vue的安装、v-cloak、v-text、v-html用法、v-bind及v-on用法

什么是Vue.js Vue是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;方便与第三方库或既有项目整合。 后端的 MVC 与 前端中的 MVVM 之间的区别 MVC : 是后端的分层…

基于Vue实现标签的字体滚动

实现思路&#xff1a; 通过截取数据第一个字符&#xff0c;把它拼接到最后&#xff0c;通过定时器实现滚动效果&#xff0c;在vue中&#xff0c;当你更新data数据时&#xff0c;网页会自己帮你更新网页中的数据。 实现代码 <!DOCTYPE html> <html><head>&…