<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>JS+CSS打造三级折叠菜单,自动收缩其它级</title>

<style>

*,body,ul,h1,h2{ margin:0; padding:0; list-style:none;}

body{font:12px "宋体"; padding-top:20px;} a{ color:white;border:none;}

#menu { width:200px; margin:auto;}

#menu h1 { font-size:12px; border:gray 1px solid; margin-top:1px;  background-color:gray;}

#menu h2 { font-size:12px; border:#E7E7E7 1px solid; border-top-color:#FFF; background-color:#00CCFF;}

#menu ul { padding-left:0px; height:auto;border:#E7E7E7 1px solid; border-top:none;overflow:auto;}

#menu a { display:block; padding:5px 0 3px 10px; text-decoration:none; overflow:hidden;}

#menu ul a { display:block; padding:5px 0 3px 15px; text-decoration:none; overflow:hidden;background-color:white;color:black;}

#menu ul a:hover  {      color:Black;background:red;      }

#menu a:hover{ color:white; background:red;}  #menu .no {display:none;}

</style>

<script language="JavaScript">

function ShowMenu(obj, n) {

var Nav = obj.parentNode;

if (!Nav.id) {

var BName = Nav.getElementsByTagName("ul");

var HName = Nav.getElementsByTagName("h2");

var t = 2;

} else {

var BName = document.getElementById(Nav.id).getElementsByTagName("span");

var HName = document.getElementById(Nav.id).getElementsByTagName("h1");

var t = 1;

}

for (var i = 0; i < HName.length; i++) {

HName[i].innerHTML = HName[i].innerHTML.replace("-", "+");

HName[i].className = "";

}

obj.className = "h" + t;

for (var i = 0; i < BName.length; i++)

{ if (i != n) { BName[i].className = "no"; } }

if (BName[n].className == "no") {

BName[n].className = "";

obj.innerHTML = obj.innerHTML.replace("+", "-");

} else {

BName[n].className = "no";

obj.className = "";

obj.innerHTML = obj.innerHTML.replace("-", "+");

}

}

</script>

</head>

<body>

<div id="menu">

<h1 onclick="javascript:ShowMenu(this,0)"><a href="javascript:void(0)">+ 一级菜单A</a></h1>

<span class="no">

<h2 onclick="javascript:ShowMenu(this,0)"><a href="javascript:void(0)">+ 一级菜单A_1</a></h2>

<ul class="no">

<a href="javascript:void(0)">一级菜单A_0</a>

<a href="javascript:void(0)">一级菜单A_1</a>

<a href="javascript:void(0)">一级菜单A_2</a>

<a href="javascript:void(0)">一级菜单A_3</a>

</ul>

<h2 onclick="javascript:ShowMenu(this,1)"><a href="javascript:void(0)">+ 一级菜单A_2</a></h2>

<ul class="no">    <a href="javascript:void(0)">一级菜单A_0</a>

<a href="javascript:void(0)">一级菜单A_1</a>

<a href="javascript:void(0)">一级菜单A_2</a>

<a href="javascript:void(0)">一级菜单A_3</a>

</ul>  </span>

<h1 onclick="javascript:ShowMenu(this,1)"><a href="javascript:void(0)">+ 二级菜单B</a></h1>

<span class="no">

<h2 onclick="javascript:ShowMenu(this,0)"><a href="javascript:void(0)">+ 二级菜单B_1</a></h2>

<ul class="no">

<a href="javascript:void(0)">二级菜单B_0</a>

<a href="javascript:void(0)">二级菜单B_1</a>

<a href="javascript:void(0)">二级菜单B_2</a>

<a href="javascript:void(0)">二级菜单B_3</a>

</ul>

<h2 onclick="javascript:ShowMenu(this,1)">

<a href="javascript:void(0)">+ 二级菜单B_2</a></h2>

<ul class="no">    <a href="javascript:void(0)">二级菜单B_0</a>

<a href="javascript:void(0)">二级菜单B_1</a>

<a href="javascript:void(0)">二级菜单B_2</a>

</ul>  </span>

<h1 onclick="javascript:ShowMenu(this,2)">

<a href="javascript:void(0)">+ 三级菜单C</a></h1>

<span class="no">   <h2 onclick="javascript:ShowMenu(this,0)">

<a href="javascript:void(0)">+ 三级菜单C_1</a></h2>

<ul class="no">    <a href="javascript:void(0)">三级菜单C_0</a>

<a href="javascript:void(0)">三级菜单C_1</a>

<a href="javascript:void(0)">三级菜单C_2</a>   </ul>

<h2 onclick="javascript:ShowMenu(this,1)">

<a href="javascript:void(0)">+ 三级菜单C_2</a></h2>

<ul class="no">    <a href="javascript:void(0)">三级菜单C_0</a>

<a href="javascript:void(0)">三级菜单C_1</a>   </ul>  </span>

<h1 onclick="javascript:ShowMenu(this,3)">

<a href="javascript:void(0)">+ 四级菜单D</a></h1>  <span class="no">

<h2 onclick="javascript:ShowMenu(this,0)">

<a href="javascript:void(0)">+ 四级菜单D_1</a></h2>   <ul class="no">

<a href="javascript:void(0)">四级菜单D_0</a>

<a href="javascript:void(0)">四级菜单D_1</a>   </ul>

<h2 onclick="javascript:ShowMenu(this,1)">

<a href="javascript:void(0)">+ 四级菜单D_2</a></h2>   <ul class="no">

<a href="javascript:void(0)">四级菜单D_0</a>

<a href="javascript:void(0)">四级菜单D_1</a>

<a href="javascript:void(0)">四级菜单D_2</a>

<a href="javascript:void(0)">四级菜单D_3</a>

</ul>

</span>

</div>

</body>

</html>

JS+CSS打造三级折叠菜单,自动收缩其它级 js的更多相关文章

  1. JS三级折叠菜单特效 自动收缩其它级

    真的很不错!很实用,在IE6.IE7.IE8.FF.chrome等浏览器都正常运行,去掉CSS中 #menu ul中 {height:100px; overflow:auto;} 即可高度自适应 &l ...

  2. 基于jquery打造的网页右侧自动收缩浮动在线客服代码

    基于jquery打造的网页右侧自动收缩浮动在线QQ客服代码, 当前比较流行的一款QQ在线jquery特效代码, 代码中还带有IE6下PNG图片透明的特效,如果想研究IE6下PNG透明的同学也可以下载研 ...

  3. 【酷】JS+CSS打造沿Y轴纵深运动的3D球体

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  4. CSS打造三级下拉菜单

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  5. css 实现三级联动菜单

    昨天因为项目中想要把二级联动菜单改成三级联动菜单,所以我就单独写了一个tab导航栏,用纯css的方式实现的三级联动.一开始我想着可以用js实现,但是js的hover事件和mouseenter,mous ...

  6. js封装的三级联动菜单(使用时只需要一行js代码)

    前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...

  7. 用css实现三级导航菜单

    主要使用css的hover伪类来实现该功能. 主要思路:先搭出三级菜单的框架,然后使用css的:hover来实现! 对li添加类selected,对该类添加position:relative属性,然后 ...

  8. JS CSS写下拉菜单 竖行

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 转: javascript实现全国城市三级联动菜单代码

    <html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...

随机推荐

  1. list根据所存对象属性排序

    比如有个list,里面存的是一个个对象,对象有个list属性,其值可以是字符串和数字. private void getSortList(List<AclResource> newList ...

  2. sort 与 qsort

    很长一段时间搞不明白 sort 和 qsort 的区别,平时在写程序时习惯了使用 sort ,因为它用起来比 qsort 要简单的多 , 这里详细介绍一下 sort 与 qsort : 给出一个数组 ...

  3. 第二天(CSS 选择器)

    1.常用的CSS选择器         类型选择器: 例如: p { color : red ; }         后代选择器: 例如: h2 span { font-weight : bold ; ...

  4. ASP.NET MVC进阶之路:依赖注入(Di)和Ninject

    0X1 什么是依赖注入 依赖注入(Dependency Injection),是这样一个过程:某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只定义一个注入点.在程序运行过程中,客户 ...

  5. LintCode-两数之和

    题目描述: 给一个整数数组,找到两个数使得他们的和等于一个给定的数target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是1到n,不是以 ...

  6. MyEclipse 怎样手动编译整个项目

    去掉自动编译的对勾,项目上就有build project,在菜单project->>build automatically. MyEclipse 菜单 Project->Build ...

  7. 面试题:对一个正整数n,算得到1需要的最少操作次数

    实现一个函数,对一个正整数n,算得到1需要的最少操作次数.操作规则为:如果n为偶数,将其除以2:如果n为奇数,可以加1或减1:一直处理下去.例子:func(7) = 4,可以证明最少需要4次运算n = ...

  8. dojo 学习笔记

    1  因为Dijit包括了一系列的UI组件,他绑定了4个支持的主题:nihilo, soria, tundra 和claro.每个主题包括了一系列的图片和CSS文件来控制组件的外观.CSS文件必须显示 ...

  9. Cow Acrobats(贪心)

    Cow Acrobats Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3686   Accepted: 1428 Desc ...

  10. 偶然碰到的Win7 64位下CHM 的问题解决

    最近下了几个沪江资料,都是chm格式的,但是在win7 64位下,都显示不了里面的音频和视频flash之类的控件,虽然可以通过源文件的方式打开视频文件,但是很麻烦.    网上似乎碰到的人也不是很多, ...