左侧伸缩式导航源码解析

我们这次分析的源码来自于站长素材

地址如下:

http://sc.chinaz.com/jiaoben/150228195730.htm

效果图

建议大家去上面的地址里,自己看一下动态的效果。

二级导航

现在我们分析一下代码

<html>
<head>
<meta charset="utf-8">
<title>jquery网站后台管理系统导航 - 站长素材</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
		$(".div2").click(function(){
			$(this).next("div").slideToggle("slow")
			.siblings(".div3:visible").slideUp("slow");
		});
	});
</script>
<style>
body{ margin:0;font-family:微软雅黑;}
.left{ width:200px; height:100%; border-right:1px solid #CCCCCC ;#FFFFFF; color:#000000; font-size:14px; text-align:center;}
.div1{text-align:center; width:200px; padding-top:10px;}
.div2{height:40px; line-height:40px;cursor: pointer; font-size:13px; position:relative;border-bottom:#ccc 1px dotted;}
.jbsz {position: absolute; height: 20px; width: 20px; left: 40px; top: 10px; background:url(images/1.png);}
.xwzx {position: absolute; height: 20px; width: 20px; left: 40px; top: 10px; background:url(images/2.png);}
.zxcp {position: absolute; height: 20px; width: 20px; left: 40px; top: 10px; background:url(images/4.png);}
.lmtj {position: absolute; height: 20px; width: 20px; left: 40px; top: 10px; background:url(images/8.png);}
.div3{display: none;cursor:pointer; font-size:13px;}
.div3 ul{margin:0;padding:0;}
.div3 li{ height:30px; line-height:30px; list-style:none; border-bottom:#ccc 1px dotted; text-align:center;}
</style>
</head>
<body>
<div class="left">
<div class="div1">
<div class="left_top"><img src="images/bbb_01.jpg"><img src="images/bbb_02.jpg" id="2"><img src="images/bbb_03.jpg"><img src="images/bbb_04.jpg"> </div>
  <div class="div2"><div class="jbsz"> </div>基本管理</div>
      <div class="div3">
<ul>
		<li> 网站配置</li>
		<li> 管理设置</li>
        <li> 导航菜单</li>
</ul>
  </div>
    <div class="div2"><div class="xwzx"> </div>新闻中心</div>
      <div class="div3">
      <ul>
		<li> 管理文章</li>
		<li> 文章分类</li>
        <li> 添加文章</li>
        </ul>
  </div>
    <div class="div2"><div class="zxcp"> </div>最新产品</div>
      <div class="div3">
      <ul>
		<li>图片管理</li>
		<li> 图片分类</li>
         <li> 添加图片</li>
         </ul>
  </div>
  <div class="div2"><div class="lmtj"> </div> 栏目添加</div>
      <div class="div3">
      <ul>
		<li> 文章系统</li>
		<li> 图片系统</li>
        <li> 添加表单</li>
         <li> 招聘系统</li>
         </ul>
  </div>
</div>
</div>

<div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">
<p>适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. </p>
<p>来源:<a href="http://sc.chinaz.com/" target="_blank">站长素材</a></p>
</div>
</body>
</html>

主要看js

<script type="text/javascript">
	$(document).ready(
			function() {
				$(".div2").click(
						function() {
							$(this).next("div").slideToggle("slow").siblings(
									".div3:visible").slideUp("slow");
						});
				$(".level3").click(
						function() {
							$(this).next("div").slideToggle("slow").siblings(
									".div4:visible").slideUp("slow");
						});
			});
</script>

我们称div2 那一级(例如基本管理)为一级标题,每个一级标题下都有二级标题(也就是div3)。

因为div的放置顺序是一个div2一个div3然后再一个div2。

$(this).next("div").slideToggle("slow")

就是每次点击一个div2后,下面的div3就从显示到隐藏,从隐藏到显示。

.siblings(".div3:visible")

运行完a段代码后,此时的对象是div3

b段的前半部分就是选择所有可见的div3

.siblings(".div3:visible").slideUp("slow");

然后隐藏他们

b段代码的功能就是当基本管理的二级菜单打开时,点击新闻中心,基本管理的二级菜单也会关闭。

看懂了上面的代码后,我们尝试将原始的二级菜单改写成三级菜单。

三级导航

效果图如下:

JavaScript如下所示

<script type="text/javascript">
<span style="white-space:pre">	</span>$(document).ready(
<span style="white-space:pre">			</span>function() {
<span style="white-space:pre">				</span>$(".div2").click(
<span style="white-space:pre">						</span>function() {
<span style="white-space:pre">							</span>$(this).next("div").slideToggle("slow").siblings(
<span style="white-space:pre">									</span>".div3:visible").slideUp("slow");
<span style="white-space:pre">						</span>});
<span style="white-space:pre">				</span>$(".level3").click(
<span style="white-space:pre">						</span>function() {
<span style="white-space:pre">							</span>$(this).next("div").slideToggle("slow").siblings(
<span style="white-space:pre">									</span>".div4:visible").slideUp("slow");
<span style="white-space:pre">						</span>});
<span style="white-space:pre">			</span>});
</script>

部分css

.div3,.div4 {
	display: none;
	cursor: pointer;
	font-size: 13px;
}

.div3 li {
	height: 30px;
	line-height: 30px;
	list-style: none;
	border-bottom: #ccc 1px dotted;
}

.div4 li {
	height: 30px;
	line-height: 30px;
	list-style: none;
	border-bottom: #ccc 1px dotted;
	padding-left: 28px;
}

部分html代码

<div class="div2">
				<div class="jbsz"></div>
				基本管理
			</div>

			<div class="div3">
				<ul>
					<li class="level3">网站配置</li>
					<div class="div4">
						<ul>
							<li>网站配置1</li>
							<li>网站配置2</li>
							<li>网站配置3</li>
						</ul>
					</div>
					<li class="level3">管理设置</li>
					<div class="div4">
						<ul>
							<li>网站配置1</li>
							<li>网站配置2</li>
							<li>网站配置3</li>
						</ul>
					</div>
					<li class="level3">导航菜单</li>
					<div class="div4">
						<ul>
							<li>网站配置1</li>
							<li>网站配置2</li>
							<li>网站配置3</li>
						</ul>
					</div>
				</ul>
			</div>

时间: 2024-10-22 20:15:04

左侧伸缩式导航源码解析的相关文章

JDK源码及其他框架源码解析随笔地址导航

置顶一篇文章,主要是整理一下写过的JDK中各个类的源码解析以及其他框架源码解析的文章,方便自己随时阅读也方便网友朋友们阅读及指正 基础篇 从为什么String=String谈到StringBuilder和StringBuffer Java语法糖1:可变长度参数以及foreach循环原理 Java语法糖2:自动装箱和自动拆箱 集合篇 图解集合1:ArrayList 图解集合2:LinkedList 图解集合3:CopyOnWriteArrayList 图解集合4:HashMap 图解集合5:不正确

Dialog与FragmentDialog源码解析

<代码里的世界> -UI篇 用文字札记描绘自己 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/46402845 [导航] - 弹出式对话框各种方案 从仿QQ消息提示框来谈弹出式对话框的实现方式 (Dialog,PopupWind,自定义View,Activity,FragmentDialog) - Dialog源码解析 从源码上看Dialog与DialogFragment 1.概述 前一篇写了

【转】Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例

概要 这一章,我们对TreeMap进行学习.我们先对TreeMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeMap.内容包括:第1部分 TreeMap介绍第2部分 TreeMap数据结构第3部分 TreeMap源码解析(基于JDK1.6.0_45)第4部分 TreeMap遍历方式第5部分 TreeMap示例 转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928 第1部

ExcelReport第二篇:ExcelReport源码解析

导航 目   录:基于NPOI的报表引擎--ExcelReport 上一篇:使用ExcelReport导出Excel 下一篇:扩展元素格式化器 概述 针对上一篇随笔收到的反馈,在展开对ExcelReport源码解析之前,我认为把编写该组件时的想法分享给大家是有必要的. 编写该组件时,思考如下: 1)要实现样式.格式与数据的彻底分离. 为什么要将样式.格式与数据分离呢?恩,你不妨想一想在生成报表时,那些是变的而那些又是不变的.我的结论是:变的是数据. 有了这个想法,很自然的想到用模板去承载不变的部

Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例

概要 这一章,我们对TreeMap进行学习.我们先对TreeMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeMap.内容包括:第1部分 TreeMap介绍第2部分 TreeMap数据结构第3部分 TreeMap源码解析(基于JDK1.6.0_45)第4部分 TreeMap遍历方式第5部分 TreeMap示例 转载:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928 第1部分 Tre

Android 开源项目源码解析(第二期)

Android 开源项目源码解析(第二期) 阅读目录 android-Ultra-Pull-To-Refresh 源码解析 DynamicLoadApk 源码解析 NineOldAnimations 源码解析 SlidingMenu 源码解析 Cling 源码解析 BaseAdapterHelper 源码分析 Side Menu.Android 源码解析 DiscreteSeekBar 源码解析 CalendarListView 源码解析 PagerSlidingTabStrip 源码解析 公共

Android的ViewDragHelper源码解析

其实我想看的是DrawerLayout, 但发现DrawerLayout里面是使用了ViewDragHelper去实现. 谷歌比较早就放出这个类了,但ViewDragHelper是开发中很少用到一个类.顾名思义这是一个和拖曳触摸有关的类. 本着追根溯源的想法, 加上ViewDragHelper的源码也不算多,就决定将ViewDragHelper的源码看一遍.对实现原理了解下. 代码一千多行,看完还是需要点时间的. 因此不会逐一讲完, 当然下面也会放出该类源码的解析,注释中也有一些个人理解的点写在

PagerSlidingTabStrip 源码解析

PagerSlidingTabStrip 源码解析 本文为 Android 开源项目源码解析 中 ${PagerSlidingTabStrip} 部分 项目地址:[PagerSlidingTabStrip]({https://github.com/astuetz/PagerSlidingTabStrip}),分析的版本:1.0.1,Demo 地址:PagerSlidingTabStrip Demo 分析者:ayyb1988,分析状态:已完成 校对者:,校对状态:未开始 Demo效果展示如下 上面

[转]ViewPagerindicator 源码解析

转自:http://www.codekk.com/open-source-project-analysis/detail/Android/lightSky/ViewPagerindicator%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90 ViewPagerindicator 源码解析 本文为 Android 开源项目源码解析 中 ViewPagerindicator 部分项目地址:ViewPagerIndicator,分析的版本:8cd549f,Demo 地址: