无限级树状菜单Tree Menu (简装版)

nba23 2003-08-09 11:39:30
<html>
<head>
<title>无限级树状菜单Tree Menu (简装版)</title>
<!-- 在一个国外体育网中“盗用”的js ,我作了些修改和添加了注析说明,感觉有点类CSDN的菜单,不过点击大类就展开的功能还没有加上,过几天有时间我再完善 -->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta content="MSHTML 5.00.3502.5390" name=Generator >

<style type=text/css>
/* CSS 请自己再增加必要的选项 */
a {font: normal 12px 宋体; color: black; text-decoration: none; }
a:link {font: normal 12px 宋体; color: black; text-decoration: none; }
a:visited {font: normal 12px 宋体; color: black; text-decoration: none; }
a:hover {font: normal 12px 宋体; color: black; text-decoration: none; }
.icoface { border: 1px solid black; width: 9px; height: 9px; overflow: hidden; font: normal 7px 宋体; line-height: 8px; text-align: center; cursor: default; }
.line-hight { font: normal 8px 宋体; }
</style>

<script language=javascript>
function Nba23() //定义树状菜单对象
{
this.start=function() //菜单开始,bTop表示是否为最外层。
{
document.writeln("<table cellpadding=1 cellspacing=0>");
}

this.end=function() //菜单结束
{
document.writeln("</table>");
}

this.addmenu=function(cText,cLink,bChild,bShow) //为菜单增加项,参数依次为:菜单文字、菜单链接、是否有子菜单、子菜单是否显示。
{
document.writeln("<tr><td><nobr><span class=icoface"+(bChild?" onclick=menuChange(this)":"")+">"
+(bChild?(bShow?"-":"+"):"·")+"</span><span class=line-hight> </span><a href="+cLink+" >"+cText+"</a></nobr></td></tr>");
}// 想让连接在新窗口中打开,则把上面的<a href="+cLink+" >改为:<a href="+cLink+" target=_blank>

this.childStart=function(bShow) //子选项开始,bShow为是否显示
{
document.writeln("<tr style='display:"+(bShow?"block":"none")+"'><td>");
document.writeln("<table cellpadding=1 cellspacing=0 style='margin-left:12px;'>");
}

this.childEnd=function() //子选项结束
{
document.writeln("</table>");
document.writeln("</td></tr>");
}
}

function menuChange(obj) //控制菜单显示/隐藏
{
obj=obj.parentNode.parentNode.parentNode;
obj.nextSibling.style.display=(obj.nextSibling.style.display=='none'?'block':'none');
obj.cells[0].childNodes[0].childNodes[0].innerText=(obj.nextSibling.style.display=='none'?'+':'-')
}
</script>
</head>

<body>
<br>
<a>无限级树形菜单,Make by csdn nba23 8/6/2003 </a>
<br><br>
<script language=javascript>
//生成菜单开始
var cmsNba23=new Nba23();
cmsNba23.start();
cmsNba23.addmenu("我的专家门诊","#url",1,0); //后面两个参数分别表示是否有子菜单、子菜单是否显示
cmsNba23.childStart(0); //参数与上面最后一个参数一致,如上面若设为1, ,此行的参数就应该设为1,初始状态就为已伸展
cmsNba23.addmenu("我的问题","#url",0);
cmsNba23.addmenu("我参与问题","#url",0);
cmsNba23.addmenu("我得分问题","#url",0);
cmsNba23.addmenu("我的专家分","#url",0);
cmsNba23.addmenu("我的收藏夹","#url",0);
cmsNba23.addmenu("短消息","#url",0);
cmsNba23.addmenu("维护FAQ列表","#url",0);
cmsNba23.addmenu("我的信誉分变化记录","#url",0);
cmsNba23.childEnd();
cmsNba23.addmenu("WEB开发","#url",1,0) //后面两个参数分别表示是否有子菜单,子菜单是否显示
cmsNba23.childStart(0); //参数与上面最后一个参数一致
cmsNba23.addmenu("ASP","#url",0);
cmsNba23.addmenu("Java JSP/Servlet/JavaBean ","#url",0);
cmsNba23.addmenu("PHP","#url",0);
cmsNba23.addmenu("JavaScript ","#url",0);
cmsNba23.addmenu("CGI ","#url",0);
cmsNba23.addmenu("XML/SOAP ","#url",0);
cmsNba23.addmenu("HTML(CSS) ","#url",0);
cmsNba23.addmenu("其它 ","#url",0);
cmsNba23.childEnd();

cmsNba23.addmenu("多媒体/设计","#url",1,1);
cmsNba23.childStart(1); //参数与上面最后一个参数一致,同时为0则为隐藏,如上面若设为1,0 ,此行的参数就应该设为0,初始状态就为已收缩
cmsNba23.addmenu("网页设计(Dreamweaver等)","#url",0);
cmsNba23.addmenu("图象工具使用","#url",0);
cmsNba23.addmenu("Flash流媒体 ","#url",0);
cmsNba23.addmenu("多媒体设计(3DMaX, Maya等)","#url",0);
cmsNba23.childEnd();

cmsNba23.addmenu("其它","#url",1,0); //后面两个参数分别表示是否有子菜单、子菜单是否显示
cmsNba23.childStart(0); //参数与上面最后一个参数一致
cmsNba23.addmenu("子菜单一 (含)","#url",1,0);
cmsNba23.childStart(0);
cmsNba23.addmenu("子菜单一(1)","#url",0);
cmsNba23.addmenu("子菜单一(2)","#url",0);
cmsNba23.addmenu("子菜单一(3) (含)","#url",1,0);
cmsNba23.childStart(0);
cmsNba23.addmenu("子菜单一(3)(a)","#url",0);
cmsNba23.addmenu("子菜单一(3)(b)","#url",0);
cmsNba23.addmenu("子菜单一(3)(c)","#url",0);
cmsNba23.childEnd();
cmsNba23.childEnd();
cmsNba23.addmenu("子菜单二","#url",0);
cmsNba23.addmenu("子菜单三","#url",0);
cmsNba23.addmenu("子菜单四","#url",0);
cmsNba23.addmenu("子菜单五","#url",0);
cmsNba23.addmenu("子菜单六","#url",0);
cmsNba23.childEnd();

cmsNba23.end();
//结束生成菜单函数
</script>
</body>
</html>
...全文
268 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nba23 2003-08-30
  • 打赏
  • 举报
回复
<html>
<head>
<title>无限级树状菜单Tree Menu (改进版)</title>
<!-- 在一个国外体育网中“盗用”的js ,我作了些修改和添加了注析说明,感觉有点类CSDN的菜单,实现了点击大类展开菜单的效果 -->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta content="MSHTML 5.00.3502.5390" name=Generator >

<style type=text/css>
/* CSS 请自己再增加必要的选项 */
a {font: normal 12px 宋体; color: black; text-decoration: none; }
a:link {font: normal 12px 宋体; color: black; text-decoration: none; }
a:visited {font: normal 12px 宋体; color: black; text-decoration: none; }
a:hover {font: normal 12px 宋体; color: black; text-decoration: none; }
.icoface { border: 1px solid black; width: 9px; height: 9px; overflow: hidden; font: normal 7px 宋体; line-height: 8px; text-align: center; cursor: default; }
.line-hight { font: normal 8px 宋体; }
</style>

<script language=javascript>
function Nba23() //定义树状菜单对象
{
this.start=function() //菜单开始,bTop表示是否为最外层。
{
document.writeln("<table cellpadding=1 cellspacing=0>");
}

this.end=function() //菜单结束
{
document.writeln("</table>");
}

this.addmenu=function(cText,cLink,bChild,bShow) //为菜单增加项,参数依次为:菜单文字、菜单链接、是否有子菜单、子菜单是否显示。
{
document.writeln("<tr><td><nobr><span class=icoface "+(bChild? "onclick=menuChange(this)":"")+">"
+(bChild?(bShow?"-":"+"):"·")+"</span><span class=line-hight class=line-hight "+(bChild? "onclick=menuChange(this)":"")+">"+" <a href="+cLink+">"+cText+"</a></span></nobr></td></tr>");



}// 想让连接在新窗口中打开,则把上面的<a href="+cLink+" >改为:<a href="+cLink+" target=_blank>

this.childStart=function(bShow) //子选项开始,bShow为是否显示
{
document.writeln("<tr style='display:"+(bShow?"block":"none")+"'><td>");
document.writeln("<table cellpadding=1 cellspacing=0 style='margin-left:12px;'>");
}

this.childEnd=function() //子选项结束
{
document.writeln("</table>");
document.writeln("</td></tr>");
}
}

function menuChange(obj) //控制菜单显示/隐藏
{
obj=obj.parentNode.parentNode.parentNode;
obj.nextSibling.style.display=(obj.nextSibling.style.display=='none'?'block':'none');
obj.cells[0].childNodes[0].childNodes[0].innerText=(obj.nextSibling.style.display=='none'?'+':'-')
}
</script>
</head>

<body>
<br/>
<a>无限级树形菜单,Make by csdn nba23 8/6/2003 </a>
<br/><br/>
<script language=javascript>
//生成菜单开始
var cmsNba23=new Nba23();
cmsNba23.start();
cmsNba23.addmenu("我的专家门诊","#url",1,0); //后面两个参数分别表示是否有子菜单、子菜单是否显示
cmsNba23.childStart(0); //参数与上面最后一个参数一致,如上面若设为1, ,此行的参数就应该设为1,初始状态就为已伸展
cmsNba23.addmenu("我的问题","#url",0);
cmsNba23.addmenu("我参与问题","#url",0);
cmsNba23.addmenu("我得分问题","#url",0);
cmsNba23.addmenu("我的专家分","#url",0);
cmsNba23.addmenu("我的收藏夹","#url",0);
cmsNba23.addmenu("短消息","#url",0);
cmsNba23.addmenu("维护FAQ列表","#url",0);
cmsNba23.addmenu("我的信誉分变化记录","#url",0);
cmsNba23.childEnd();
cmsNba23.addmenu("WEB开发","#url",1,0) //后面两个参数分别表示是否有子菜单,子菜单是否显示
cmsNba23.childStart(0); //参数与上面最后一个参数一致
cmsNba23.addmenu("ASP","#url",0);
cmsNba23.addmenu("Java JSP/Servlet/JavaBean ","#url",0);
cmsNba23.addmenu("PHP","#url",0);
cmsNba23.addmenu("JavaScript ","#url",0);
cmsNba23.addmenu("CGI ","#url",0);
cmsNba23.addmenu("XML/SOAP ","#url",0);
cmsNba23.addmenu("HTML(CSS) ","#url",0);
cmsNba23.addmenu("其它 ","#url",0);
cmsNba23.childEnd();

cmsNba23.addmenu("多媒体/设计","#url",1,1);
cmsNba23.childStart(1); //参数与上面最后一个参数一致,同时为0则为隐藏,如上面若设为1,0 ,此行的参数就应该设为0,初始状态就为已收缩
cmsNba23.addmenu("网页设计(Dreamweaver等)","#url",0);
cmsNba23.addmenu("图象工具使用","#url",0);
cmsNba23.addmenu("Flash流媒体 ","#url",0);
cmsNba23.addmenu("多媒体设计(3DMaX, Maya等)","#url",0);
cmsNba23.childEnd();

cmsNba23.addmenu("其它","#url",1,0); //后面两个参数分别表示是否有子菜单、子菜单是否显示
cmsNba23.childStart(0); //参数与上面最后一个参数一致
cmsNba23.addmenu("子菜单一 (含)","#url",1,0);
cmsNba23.childStart(0);
cmsNba23.addmenu("子菜单一(1)","#url",0);
cmsNba23.addmenu("子菜单一(2)","#url",0);
cmsNba23.addmenu("子菜单一(3) (含)","#url",1,0);
cmsNba23.childStart(0);
cmsNba23.addmenu("子菜单一(3)(a)","#url",0);
cmsNba23.addmenu("子菜单一(3)(b)","#url",0);
cmsNba23.addmenu("子菜单一(3)(c)","#url",0);
cmsNba23.childEnd();
cmsNba23.childEnd();
cmsNba23.addmenu("子菜单二","#url",0);
cmsNba23.addmenu("子菜单三","#url",0);
cmsNba23.addmenu("子菜单四","#url",0);
cmsNba23.addmenu("子菜单五","#url",0);
cmsNba23.addmenu("子菜单六","#url",0);
cmsNba23.childEnd();

cmsNba23.end();
//结束生成菜单函数
</script>
</body>
</html>
penny8386 2003-08-15
  • 打赏
  • 举报
回复
thrillers 2003-08-15
  • 打赏
  • 举报
回复
学习
YAMAHA2008 2003-08-12
  • 打赏
  • 举报
回复
<head>
<style>
<!--
#foldheader{cursor:hand ; font-weight:bold ;
list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//-->
</style>
<script language="JavaScript1.2">
<!--
/**
* Based on Folding Menu Tree
* Dynamic Drive (www.dynamicdrive.com)
* For full source code, installation instructions,
* 100's more DHTML scripts, and Terms Of
* Use, visit dynamicdrive.com
*
* Updated to support arbitrarily nested lists
* by Mark Quinn (mark@robocast.com) November 2nd 1998
*/

var head="display:''"
img1=new Image()
img1.src="fold.gif"
img2=new Image()
img2.src="open.gif"

function change(){
if(!document.all)
return
if (event.srcElement.id=="foldheader") {
var srcIndex = event.srcElement.sourceIndex
var nested = document.all[srcIndex+1]
if (nested.style.display=="none") {
nested.style.display=''
event.srcElement.style.listStyleImage="url(open.gif)"
}
else {
nested.style.display="none"
event.srcElement.style.listStyleImage="url(fold.gif)"
}
}
}

document.onclick=change

//-->
</script>
</head>
<body>
<ul>
<li id="foldheader">News</li>
<ul id="foldinglist" style="display:none">
<li><a href="http://www.cnn.com">CNN</a></li>
<li><a href="http://www.abcnews.com">ABC News</a></li>
<li><a href="http://www.vancouversun.com">Vancouver Sun</a></li>
</ul>

<li id="foldheader">Games</li>
<ul id="foldinglist" style="display:none">
<li><a href="http://www.gamespot.com">GameSpot</a></li>
<li><a href="http://www.happypuppy.com">Happy Puppy</a></li>
<li><a href="http://www.gamecenter.com">Game Center</a></li>
</ul>

<li id="foldheader">Software</li>
<ul id="foldinglist" style="display:none">
<li><a href="http://www.download.com">outer 1</a></li>
<li><a href="http://www.hotfiles.com">outer 2</a></li>
<li id="foldheader">Nested</li>
<ul id="foldinglist" style="display:none">
<li><a href="http://www.windows95.com">nested 1</a></li>
<li><a href="http://www.shareware.com">nested 2</a></li>
</ul>
<li><a href="http://www.windows95.com">outer 3</a></li>
<li><a href="http://www.shareware.com">outer 4</a></li>
</ul>
</ul>
</body>

这个是最简单的<body>以内的你都可以修改的,稍微看一下就会做的,这个代码可以直接放在dreamweaver里御览的!!!
marrio 2003-08-09
  • 打赏
  • 举报
回复
Jordan兄的东东真是多啊

Go on with you exiting code !
fason 2003-08-09
  • 打赏
  • 举报
回复
你那个是iecn来的吧?
http://www.iecn.net/forum/showthread.php?s=&threadid=2403
fason 2003-08-09
  • 打赏
  • 举报
回复
http://fason.nease.net/zhuanti/tree/dtree/dtree.htm

1,451

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 图象工具使用
社区管理员
  • 图象工具使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧