一、列表菜单
1、实现功能:点击菜单,显示菜单下的内容,再次点击,隐藏内容
注:把height+overflow样式同时设在<d1>能够解决菜单块显示重叠问题
<span style="font-size:14px;"><!DOCTYPE html>
<html>
<head>
<title>演示列表菜单</title>
<style type="text/css">
dd{
margin:0px;
}
dl{
height:16px;
overflow:hidden;
}
.open{
height:90px;
overflow:visible;
}
.close{
height:16px;
overflow:hidden;
}
</style>
<script type="text/javascript">
var flag = true;
function list(x){
//alert("aa");
var oDlNode = document.getElementsByTagName("dl")[x];
if(flag){
oDlNode.style.overflow="visible";//这种单独设置overflow样式,会出现菜单块重叠的问题
flag=false;
}else{
oDlNode.style.overflow="hidden";
flag=true;
}
}
</script>
</head>
<body>
<dl>
<dt οnclick="list(0)">菜单条1</dt>
<dd>菜单项1</dd>
<dd>菜单项2</dd>
<dd>菜单项3</dd>
<dd>菜单项4</dd>
</dl>
<dl>
<dt οnclick="list(1)">菜单条2</dt>
<dd>菜单项1</dd>
<dd>菜单项2</dd>
<dd>菜单项3</dd>
<dd>菜单项4</dd>
</dl>
<dl>
<dt οnclick="list(2)">菜单条3</dt>
<dd>菜单项1</dd>
<dd>菜单项2</dd>
<dd>菜单项3</dd>
<dd>菜单项4</dd>
</dl>
<!-- ------------------------- -->
<script type="text/javascript">
function list2( oDtNode ){
//alert(oDlNode.className);
//alert(oDlNode.nodeName);
var oDlNode = oDtNode.parentNode;
if(oDlNode.className=="open"){
oDlNode.className = "close";//而这种high+overflow的方式可以解决菜单块重叠的问题
}else{
oDlNode.className = "open";
}
}
</script>
<hr/>
<dl>
<dt οnclick="list2(this)">菜单条1</dt>
<dd>菜单项1</dd>
<dd>菜单项2</dd>
<dd>菜单项3</dd>
<dd>菜单项4</dd>
</dl>
<dl>
<dt οnclick="list2(this)">菜单条2</dt>
<dd>菜单项1</dd>
<dd>菜单项2</dd>
<dd>菜单项3</dd>
<dd>菜单项4</dd>
</dl>
<dl>
<dt οnclick="list2(this)">菜单条3</dt>
<dd>菜单项1</dd>
<dd>菜单项2</dd>
<dd>菜单项3</dd>
<dd>菜单项4</dd>
</dl>
</body>
</html>
</span>
结果:2、实现功能:在1的基础上,通过表格封装菜单,且同时只能打开一个菜单块
<span style="font-size:14px;"><!DOCTYPE html>
<html>
<head>
<title>演示列表菜单</title>
<style type="text/css">
ul{
list-style:none;
margin:0px;
padding:0px;
display:none;
}
table{
border:#8080ff solid 1px;
width:80px;
}
table td a:link, table td a:visited{
text-decoration:none;
color:#8080FF;
}
.open{
display:block;
}
.close{
display:none;
}
</style>
<script type="text/javascript">
function list( node ){
var oTdNode = node.parentNode;
var oUlNode = oTdNode.getElementsByTagName("ul")[0];
//获取表格对象
var oTabelNode = document.getElementById("tableFriends");
var colUlNodes = oTabelNode.getElementsByTagName("ul");
for(var x=0; x<colUlNodes.length; x++){
/*
if(colUlNodes[x]==oUlNode){
if(oUlNode.className=="open"){
oUlNode.className="close";
}else{
oUlNode.className="open";
}
}else{
colUlNodes[x].className="close";
}
*/
if(colUlNodes[x]==oUlNode && oUlNode.className!="open" ){
oUlNode.className="open";
}else{
colUlNodes[x].className="close";
}
}
}
</script>
</head>
<body>
<table id="tableFriends">
<tr>
<td>
<a href="javascript:void(0)" οnclick="list(this)">好友菜单</a>
<ul>
<li>一个好友1</li>
<li>一个好友2</li>
<li>一个好友3</li>
<li>一个好友4</li>
</ul>
</td>
</tr>
<tr>
<td>
<a href="javascript:void(0)" οnclick="list(this)">同事菜单</a>
<ul>
<li>一个同事1</li>
<li>一个同事2</li>
<li>一个同事3</li>
<li>一个同事4</li>
</ul>
</td>
</tr>
<tr>
<td>
<a href="javascript:void(0)" οnclick="list(this)">黑友菜单</a>
<ul>
<li>一个黑友1</li>
<li>一个黑友2</li>
<li>一个黑友3</li>
<li>一个黑友4</li>
</ul>
</td>
</tr>
<tr>
<td>
<a href="javascript:void(0)" οnclick="list(this)">黑友菜单</a>
<ul>
<li>一个黑友1</li>
<li>一个黑友2</li>
<li>一个黑友3</li>
<li>一个黑友4</li>
</ul>
</td>
</tr>
</table>
</body>
</html>
</span>
现象:3、实现功能:鼠标放在菜单条上时,显示菜单块,离开菜单条和菜单块时,隐藏菜单块,且鼠标放的行有颜色变化
<span style="font-size:14px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>演示列表菜单</title>
<style type="text/css">
#newsid ul{
list-style:none;
}
#newslist li{
float:left;
width:180px;
}
#newslist li ul{
margin:0px;
padding:0px;
display:none;
}
#newslist li ul li{
line-height:25px;
}
#newslist li a{
display:block;
text-decoration:none;
color:#ffffff;
background-color:#0000ff;
line-height:25px;
text-align:center;
}
#newslist li a:hover{
color:#06c;
background-color:#cccccc;
}
</style>
<script type="text/javascript">
function list(node){
//var pNode=node;
var ulNode=node.getElementsByTagName("ul")[0];
with(ulNode.style){
display=(display=="block")?"none":"block";
}
}
</script>
</head>
<body>
<div id="newsid">
<ul id="newslist">
<li οnmοuseοver="list(this)"; οnmοuseοut="list(this)">
<a href="javascript:void(0)">csdn新闻</a>
<ul>
<li>
<a href="http://www.baidu.com">csdn新闻内容摘要</a>
</li>
<li>
<a href="http://www.baidu.com">csdn新闻内容摘要</a>
</li>
<li>
<a href="http://www.baidu.com">csdn新闻内容摘要</a>
</li>
<li>
<a href="http://www.baidu.com">csdn新闻内容摘要</a>
</li>
<li>
<a href="http://www.baidu.com">csdn新闻内容摘要</a>
</