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. kvm.install

    #!/bin/bash ## TODO ## windows edition function with video driver NAME=win2008r2_fei_test CPU= MEM= ...

  2. 927. Three Equal Parts

    Given an array A of 0s and 1s, divide the array into 3 non-empty parts such that all of these parts ...

  3. SFML从入门到放弃(0) 配置环境

    SFML从入门到放弃(0) 配置环境 恩..开始划水..学sfml的时候顺便做点笔记什么的.. 安装 在linux里面打开终端 然后输入 sudo apt-get install libsfml-de ...

  4. easyui里面的加载tree的两种方式

    第一种: 使用EasyUI中Tree 符合EasyUI中Tree的Json格式,我们先看一下,格式是如何的 [{ "id":1, "text":"My ...

  5. leetcode-824-Goat Latin(字符串的处理)

    题目描述: A sentence S is given, composed of words separated by spaces. Each word consists of lowercase ...

  6. PHP用curl远程下载图片

    function http_get_data($url){ $ch = curl_init (); curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'GET' ); ...

  7. python全栈开发学习_day1_计算机五大组成部分及操作系统

    一.计算机五大组成部分: 1)五大组成: 1.控制器(指挥系统,用于控制其他计算机硬件的工作) 2.运算器(用于数学运算及逻辑运算) 3.存储器(寄存器,高速缓存,内存,磁盘(机械,固态),磁带) 4 ...

  8. js高级程序设计 笔记 --- 面向对象的程序设计

    1,理解对象 通过对象字面量的方式,创建一个对象,为它添加属性和方法: var obj = { a: 1, b:2, sayA(){ console.log(this.a)}} 1,属性类型: 数据属 ...

  9. Q791 自定义字符串排序

    字符串S和 T 只包含小写字符.在S中,所有字符只会出现一次. S 已经根据某种规则进行了排序.我们要根据S中的字符顺序对T进行排序.更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在 ...

  10. 论文阅读 | FPN:Feature Pyramid Networks for Object Detection

    论文地址:https://arxiv.org/pdf/1612.03144v2.pdf 代码地址:https://github.com/unsky/FPN 概述 FPN是FAIR发表在CVPR 201 ...