1.javascript方法

<style>
#navigation {
width: 200px;
font-family: Arial;
}
#navigation > ul {
list-style-type: none;
/* 不显示项目符号 */ margin: 0px;
padding: 0px;
}
#navigation > ul > li {
border-bottom: 1px solid #ED9F9F;
/* 添加下划线 */
}
#navigation > ul > li > a {
display: block;
/* 区块显示 */ padding: 5px 5px 5px 0.5em;
text-decoration: none;
border-left: 12px solid #711515;
/* 左边的粗红边 */ border-right: 1px solid #711515;
/* 右侧阴影 */
}
#navigation > ul > li > a:link,
#navigation > ul > li > a:visited {
background-color: #c11136;
color: #FFFFFF;
}
#navigation > ul > li > a:hover {
/* 鼠标经过时 */ background-color: #990020;
/* 改变背景色 */ color: #ffff00;
/* 改变文字颜色 */
}
/* 子菜单的CSS样式 */ #navigation ul li ul {
list-style-type: none;
margin: 0px;
padding: 0px 0px 0px 0px;
}
#navigation ul li ul li {
border-top: 1px solid #ED9F9F;
}
#navigation ul li ul li a {
display: block;
padding: 3px 3px 3px 0.5em;
text-decoration: none;
border-left: 28px solid #a71f1f;
border-right: 1px solid #711515;
}
#navigation ul li ul li a:link,
#navigation ul li ul li a:visited {
background-color: #e85070;
color: #FFFFFF;
}
#navigation ul li ul li a:hover {
background-color: #c2425d;
color: #ffff00;
}
#navigation ul li ul.myHide {
/* 隐藏子菜单 */ display: none;
}
#navigation ul li ul.myShow {
/* 显示子菜单 */ display: block;
}
</style> <script type="text/javascript">
function changemenu() {
//通过父元素li,找到兄弟元素ul
var bList = this.parentNode.getElementsByTagName("ul")[0];
//CSS交替更换来实现显、隐
if (bList.className == "myHide")
bList.className = "myShow";
else
bList.className = "myHide";
}
window.onload = function() {
var oList = document.getElementById("listUL");
var nList = oList.childNodes; //子元素
var sList;
for (var i = 0; i < nList.length; i++) {
//如果子元素为li,且这个li有子菜单ul
if (nList[i].tagName == "LI" && nList[i].getElementsByTagName("ul").length) {
slist = nList[i].firstChild; //找到超链接
slist.onclick = changemenu; //动态添加点击函数
}
}
}
</script> <div>
<div id="navigation">
<ul id="listUL">
<li><a href="#">Home</a>
</li>
<li><a href="#">News</a>
<ul class="myHide">
<li><a href="#">Lastest News</a>
</li>
<li><a href="#">All News</a>
</li>
</ul>
</li>
<li><a href="#">Sports</a>
<ul class="myHide">
<li><a href="#">Basketball</a>
</li>
<li><a href="#">Football</a>
</li>
<li><a href="#">Volleyball</a>
</li>
</ul>
</li>
<li><a href="#">Weather</a>
<ul class="myHide">
<li><a href="#">Today's Weather</a>
</li>
<li><a href="#">Forecast</a>
</li>
</ul>
</li>
<li><a href="#">Contact Me</a>
</li>
</ul>
</div> </div>

2.附jQuery方法

<script type="text/javascript">
$(function() {
//找到所有li标记中包含的ul标记
//然后找到它的前一个标记(即<a>),并添加click()事件
$("li").find("ul").prev().click(function() {
//点击<a>时让它后面的兄弟(即<ul>)切换CSS样式
$(this).next().toggleClass("myHide");
});
});
</script>

3.附jQuery toggle()方法

<script language="javascript">
$(function(){
$("li").find("ul").prev().click(function(){
$(this).next().toggle();
});
$("li:has(ul)").find("ul").hide();
});
</script>

Javascript制作伸缩的二级菜单的更多相关文章

  1. jQuery - 制作点击显示二级菜单效果

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

  2. javascript 特效实现(3)—— 鼠标滑过显示二级菜单效果

    1. 关键代码:使用 switch 或 if 判断语句,改变对应的二级菜单显示方式为 block 或 none function selectTabMenu(i){ switch(i){ case 7 ...

  3. 个人练习:使用HTML+CSS制作二级菜单

    最近一直在学习HTML+CSS,刚看完如果制作下拉菜单部分,就想着做一个练练手. 先上成品图: 就是上面这个效果,横向菜单选项能点击,鼠标放在上面也能展开二级菜单,二级菜单也能点击,点击后就会在底下的 ...

  4. CSS制作二级菜单时,二级菜单与一级菜单不对齐

    效果如图: 部分代码如图: <li><a href="#" target="_blank">关于我们</a> <ul& ...

  5. html+css二级菜单制作!

    二级菜单!!<!DOCTYPE html<html lang="e<head> <meta charset="UTF-8"> < ...

  6. JavaScript(jquery)实现二级菜单联动

    为什么写这篇随笔? 二级菜单的联动一直是我心中一块石头,犹记得大一的时候只会用一点的Dreamweaver,当时做二级菜单难受啊,啥都不会,网上找了些资料,也看不懂别人的代码更别说用起来了 前些日子. ...

  7. JavaScript处理数据完成左侧二级菜单的搭建

    我们在项目中应用的后台管理框架基本上都是大同小异,左侧是一个二级菜单,点击选中的菜单,右侧对应的页面展示.我把前端页面封装数据的过程整理了一下,虽然不一定适合所有的管理页面,仅作为案例来参考,只是希望 ...

  8. bootstrap学习笔记之为导航条添加标题、二级菜单及状态 http://www.imooc.com/code/3120

    为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过" ...

  9. Jquery垂直下拉二级菜单

    自己做了一个基于Jquery 的垂直下拉二级菜单功能,直接看图: Html的代码如下: <!DOCTYPE html> <html> <head> <meta ...

随机推荐

  1. HAOI2014 遥感监测

    题目链接:戳我 比较水的一个题,直接处理点,找在直线上的可以覆盖到它的区间,然后做最小线段覆盖即可: 代码如下: #include<iostream> #include<cstdio ...

  2. iOS应用开发权限请求处理

    1.写在前面 APP开发避免不开系统权限的问题,如何在APP以更加友好的方式向用户展示系统权限,似乎也是开发过程中值得深思的一件事: 那如何提高APP获取iOS系统权限的通过率呢?有以下几种方式: 1 ...

  3. Origin如何使曲面变平滑?

    在“绘图属性” - “绘图细节”窗口中选中 Layer1 下的曲面数据,“Colormap/Contours” 选项下有“Level”标签,选中并设置“Minor Levels”,将其数值调大即可.

  4. 波利亚(Polya)罐子模型

    (波利亚(Polya)罐子模型)罐中有a个白球,b个黑球,每次从罐中随机抽取一球,观察其颜色后,连同附加的c个同色球   (波利亚(Polya)罐子模型)罐中有a个白球,b个黑球,每次从罐中随机抽取一 ...

  5. php-fpm.conf 解析

    以下内容转自:http://www.4wei.cn/archives/1002061 约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-f ...

  6. 洛谷P3613 睡觉困难综合征

    传送门 题解 人生第一道由乃…… 做这题之前应该先去把这一题给切掉->这里 我的题解->这里 然后先膜一波zsy大佬和flashhu大佬 大体思路就是先吧全0和全1的都跑答案,然后按位贪心 ...

  7. Elasticsearch C# NEST IndexMany Children

    foreach (IEnumerable<object> batch in objects.Batch(1000)) { var indexResponse = client.Bulk(s ...

  8. [ActionScript 3.0] 绘制扇形方法

    /** * 绘制扇形 * @param mc 承载扇形的对象 * @param x 圆心角x * @param y 圆心角y * @param r 半径 * @param angle 绘制角度 * @ ...

  9. windows系统作为客户端时,linux中本地yum源挂载时,如何同时挂载DVD1和DVD2?

    这里以CentOS6.5为例.他的镜像有两个DVD1和DVD2.DVD1中是系统和主要的安装包,DVD2中是剩下的安装包 当挂载时如果要同时挂载DVD1和DVD2.需要这样做: 1)在虚拟机的设置中选 ...

  10. js 实现tab栏切换效果

    效果图: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...