JS树效果

来源:互联网 发布:数组公式怎么输入 编辑:程序博客网 时间:2024/05/16 16:58

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>树型目录</title>
<style type="text/css">
 <!--
 html,body {height:100%;margin:0;font:12px tahoma,宋体,sans-serif;}
 a {text-decoration:none;}
 a,a:visited {color:#000;background:inherit;}
 
 p {margin:0;padding:0 0 0 18px;}
 p a,p a:visited {color:#00f;background:inherit;}
 
 
 /*树型目录开始*/
 .TreeMenu img.s {cursor:pointer;vertical-align:middle;}
 .TreeMenu ul {padding:0;}
 .TreeMenu li {list-style:none;padding:0;}
 .Closed ul {display:none;}
 .Child img.s {background:none;cursor:default;}
 
 #TreeMenu {float:left;width:200px;height:98%;border:1px solid #99BEEF;background:#D2E4FC;color:inherit;margin:3px;padding:3px;}
 #TreeMenu ul {margin:0 0 0 17px;}
 #TreeMenu img.s {width:34px;height:18px;}
 #TreeMenu .Opened img.s {background:url(TreeMenu_img/opened.gif) no-repeat 0 1px;}
 #TreeMenu .Closed img.s {background:url(TreeMenu_img/closed.gif) no-repeat 0 1px;}
 #TreeMenu .Child img.s {background:url(TreeMenu_img/child.gif) no-repeat 13px 2px;}
 /*树型目录结束*/

 -->
</style>
<script type="text/javascript">
<!--
 function Ob(o){
  var o=document.getElementById(o)?document.getElementById(o):o;
  return o;
 }
 function Hd(o) {
  Ob(o).style.display="none";
 }
 function Sw(o) {
  Ob(o).style.display="";
 }
 function ExCls(o,a,b,n){
  var o=Ob(o);
  for(i=0;i<n;i++) {o=o.parentNode;}
  o.className=o.className==a?b:a;
 }
 function TreeMenu(id,TagName0) {
   this.id=id;
   this.TagName0=TagName0==""?"li":TagName0;
   this.AllNodes = Ob(this.id).getElementsByTagName(TagName0);
   this.InitCss = function (ClassName0,ClassName1,ClassName2,ImgUrl) {
   this.ClassName0=ClassName0;
   this.ClassName1=ClassName1;
   this.ClassName2=ClassName2;
   this.ImgUrl=ImgUrl || "TreeMenu_img/s.gif";
   this.ImgBlankA ="<img src=/""+this.ImgUrl+"/" class=/"s/" onclick=/"ExCls(this,'"+ClassName0+"','"+ClassName1+"',1);/" alt=/"展开/折叠/" />";
   this.ImgBlankB ="<img src=/""+this.ImgUrl+"/" class=/"s/" />";
   for (i=0;i<this.AllNodes.length;i++ ) {
    this.AllNodes[i].className==""?this.AllNodes[i].className=ClassName1:"";
    this.AllNodes[i].innerHTML=(this.AllNodes[i].className==ClassName2?this.ImgBlankB:this.ImgBlankA)+this.AllNodes[i].innerHTML;
    }
  }
  this.SetNodes = function (n) {
   var sClsName=n==0?this.ClassName0:this.ClassName1;
   for (i=0;i<this.AllNodes.length;i++ ) {
    this.AllNodes[i].className==this.ClassName2?"":this.AllNodes[i].className=sClsName;
   }
  }
 }
-->
</script>

</head>
<body>

<div class="TreeMenu" id="TreeMenu">

<p><a id="AllOpen" href="#" onclick="MyTreeMenu.SetNodes(0);Hd(this);Sw('AllClose');">全部展开</a><a id="AllClose" href="#" onclick="MyTreeMenu.SetNodes(1);Hd(this);Sw('AllOpen');" style="display:none;">全部折叠</a></p>

<ul>
<li class="Opened"><a href="http://www.gushu.cn/" target="_blank">网站后台管理系统</a>
<!--目录节点开始-->
   <ul>
    <li><a href="#1">111</a>
  <ul>
   <li><a href="#2">222</a>
    <ul>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
    </ul>
   </li>
   <li><a href="#">Web编程</a>
    <ul>
     <li class="Child"><a href="#">Java</a></li><!--Child Node-->
     <li class="Child"><a href="#">.Net</a></li>
     <li class="Child"><a href="#">ASP/VBScript</a></li>
     <li class="Child"><a href="#">PHP</a></li>
     <li class="Child"><a href="#">Perl/Python</a></li>
     <li class="Child"><a href="#">Web综合/开源</a></li>
    </ul>
   </li>
  </ul>
 </li>
 </ul>
<!--目录节点开始-->
</li>
</ul><ul>
<li class="Opened"><a href="http://www.gushu.cn/" target="_blank">网站后台管理系统</a>
<!--目录节点开始-->
   <ul>
    <li><a href="#1">111</a>
  <ul>
   <li><a href="#2">222</a>
    <ul>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
    </ul>
   </li>
   <li><a href="#">Web编程</a>
    <ul>
     <li class="Child"><a href="#">Java</a></li><!--Child Node-->
     <li class="Child"><a href="#">.Net</a></li>
     <li class="Child"><a href="#">ASP/VBScript</a></li>
     <li class="Child"><a href="#">PHP</a></li>
     <li class="Child"><a href="#">Perl/Python</a></li>
     <li class="Child"><a href="#">Web综合/开源</a></li>
    </ul>
   </li>
  </ul>
 </li>    <li><a href="#1">111</a>
  <ul>
   <li><a href="#2">222</a>
    <ul>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
     <li class="Child"><a href="#">333</a></li>
    </ul>
   </li>
   <li><a href="#">Web编程</a>
    <ul>
     <li class="Child"><a href="#">Java</a></li><!--Child Node-->
     <li class="Child"><a href="#">.Net</a></li>
     <li class="Child"><a href="#">ASP/VBScript</a></li>
     <li class="Child"><a href="#">PHP</a></li>
     <li class="Child"><a href="#">Perl/Python</a></li>
     <li class="Child"><a href="#">Web综合/开源</a></li>
    </ul>
   </li>
  </ul>
 </li>
 </ul>
<!--目录节点开始-->
</li>
</ul>
</div>
<script type="text/javascript">
<!--
 var MyTreeMenu=new TreeMenu("TreeMenu","li");
 MyTreeMenu.InitCss("Opened","Closed","Child","TreeMenu_img/s.gif");
-->
</script>
</body>
</html>