<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用html+css制作的组织结构图_96看吧</title>
<meta name="keywords" content="html+css,组织结构图">
<meta name="description" content="站长建设常用代码,html+css制作的组织结构图。更多精彩内容请访问96看吧 96KB.COM ">
<style>
.dvItem { position:absolute; width:24px; border:1px solid #999999; font-size:12px; padding:5px; height:80px; z-index:9; background-color:#FFFFFF; line-height:16px; }
a { text-decoration:none; color:#333333; }
.dvhline { position:absolute; z-index:17; padding:0px; margin:0px; border-top:1px solid #999999; }
.dvvline { color:blue; position:absolute; background-color:#999999; width:1px; z-index:17; }
</style>
<script>
var dItem = new Array();
var w = 600;
var h = 40;
var iw = 60;
var ih = 80;
var boxh = 80;
var startleft = 400;
var starttop = 40;
var hr = "<hr size=\"1\" noshade>"
var labledv = "<div class=\"dvItem\" style=\""
var hdv = "<div class=\"dvhline\" style=\"width:";
var vdv = "<div class=\"dvvline\" style=\"height:" + h + "px;\"";
var endsdv = "\">";
var enddv = "</div>";
var htm = "";
var len;
var maxn=0;//深度
function Load_Data()
{
dItem[0] = "1|总经理|0|";
dItem[1] = "2|营运主管|1|";
dItem[2] = "3|技术主管|1|";
//dItem[3] = "4|test|1|";
//dItem[4] = "5|test|1|";
dItem[3] = "4|客服主管|2|";
dItem[4] = "5|商务主管|2|";
dItem[5] = "6|商务代表|5|";
dItem[6] = "7|营运策划|2|";
dItem[7] = "8|程序员|3|";
dItem[8] = "9|美工|3|";
len = dItem.length;
Set_Item(0,0);
Set_Max();
Write_Item(0,0,0,1);
var htm1 = "";
for(var i=0;i<len;i++)
{
htm1 = htm1 +dItem[i]+"<br>";
}
//document.getElementById("Load_DV").innerHTML = htm1 ;
document.getElementById("List_DV").innerHTML = htm;
}
//设置层次
function Set_Item(pid,ni)
{
var n = ni + 1;
var iAry = new Array();
for(var i=0;i<len;i++)
{
iAry = dItem[i].split("|");
if(iAry[2] == pid)
{
dItem[i] = dItem[i] + ni;
if(maxn < ni)
{
maxn = ni;
}
Set_Item(iAry[0],n);
}
}
}
//设置节点子节点中最大数
function Set_Max()
{
var iAry = new Array();
var childnum;
for(var i=0;i<len;i++)
{
iAry = dItem[i].split("|");
childnum = Get_Child_Num(iAry[0]);
if(childnum <= 1)
{
dItem[i] = dItem[i] + "|0";
}
else
{
dItem[i] = dItem[i] + "|" + Get_Max(iAry[0],iAry[3]);
}
}
}
function Get_Max(pid,start)
{
var iAry = new Array();
var m = 0;
var n = 0;
for(var j=start;j<=maxn;j++)
{
for(var i=0;i<len;i++)
{
iAry = dItem[i].split("|");
if(iAry[3] == j)
{
if(Get_RootID(pid,iAry[0]))
{
m = m + 1;
}
}
if(n < m)
{
n = m;
}
}
m = 0;
}
return n;
}
function Get_RootID(pid,id)
{
var iAry = new Array();
for(var i=0;i<len;i++)
{
iAry = dItem[i].split("|");
if(iAry[0] == id)
{
if(iAry[2] == pid)
{
return true;
break;
}
else
{
return Get_RootID(pid,iAry[2]);
}
}
}
return false;
}
//取得 id 所在的数组
function Get_Item(id)
{
var i;
var items;
var iAry = new Array();
for(i=0;i<len;i++)
{
iAry = dItem[i].split("|");
if(iAry[0] == id)
{
items = dItem[i];
break;
}
}
return items;
}
//取得子节点个数
function Get_Child_Num(pid)
{
var i;
var rnum = 0;
var iAry = new Array();
for(i=0;i<len;i++)
{
iAry = dItem[i].split("|");
if(iAry[2] == pid)
{
rnum = rnum + 1;
}
}
return rnum;
}
function Write_Item(ipid,ltmp,wtmp,cnt)
{
var iAry = new Array();
var id;
var txt;
var pid;
var lens;
var maxnum;
var t;
var l;
var hline_width;
var dvline = "";
var childnum = 0;
var itxt;
var tmpcnt = 0;
for(var i=0;i<len;i++)
{
itxt = dItem[i];
iAry = itxt.split("|");
if(iAry[2] == ipid)
{
id = iAry[0];
txt = "<a href=\"?id=" + id + "\">" + iAry[1] + "</a>";
pid = iAry[2];
lens = iAry[3];
maxnum = iAry[4];
childnum = Get_Child_Num(id);
hline_width = maxnum * iw;
if(pid == 0)
{
t = starttop;
l = startleft;
}
else
{
t = starttop + 2 * lens * h + lens * ih;
// l = ltmp + wtmp / cnt * tmpcnt;
l = ltmp - wtmp/2 + (wtmp / 2) * tmpcnt;
}
dvline = "";
if(childnum > 1)
{
var t1;
var l1;
var t2;
var l2;
var w2;
t1 = t + ih;
l1 = l + 12;
w2 = hline_width/2;
t2 = t1 + h;
l2 = l - w2 + 10;
dvline = "<div class=\"dvvline\" style=\"height:" + h + "px;left:" + l1 +"px;top:" + t1 + "\"></div>";
dvline = dvline + "<div class=\"dvhline\" style=\"width:" + hline_width + "px;left:" + l2 +"px;top:" + t2 + "\"></div>";
for(var j=0;j<childnum;j++)
{
var t3;
var l3;
t3 = t1 + h;
l3 = l2 + (hline_width/(childnum-1)) * j;
var tmpline = "<div class=\"dvvline\" style=\"height:" + h + "px;left:" + l3 +"px;top:" + t3 + "\"></div>";
dvline = dvline + tmpline;
}
dvline = dvline
}
else if(childnum == 1)
{
var t4;
var l4;
l4 = l + 12;
dvline = "<div class=\"dvvline\" style=\"height:" + h + "px;left:" + l4 +"px;top:" + (t + ih) + "\"></div>";
dvline = dvline + "<div class=\"dvvline\" style=\"height:" + h + "px;left:" + l4 +"px;top:" + (t + ih + h) + "\"></div>";
}
//dvline = hdv + hline_width + endsdv + hr + enddv;<hr size=\"1\" noshade>
//var ldv = "";
//ldv = "<div class=\"dvItem\" style=\"left:" + l + "px;top:" + t + "px;\">" + txt + "<div>"
//htm = htm +ldv + dvline;
htm = htm + labledv + "left:" + l + "px;top:" + t + "px" + endsdv + txt + enddv + dvline;
if(cnt % 2 == 0)
{
tmpcnt = tmpcnt + 2;
}
else
{
tmpcnt = tmpcnt + 1;
}
Write_Item(id,l,hline_width,childnum);
}//if(iAry[2] == ipid)
}
}
</script>
</head>
<body onLoad="Load_Data()">
<div id="List_DV"></div>
</body>
</html>
分享到:
相关推荐
标题"0520.zip11111111"和描述"0520.zip11111111"似乎指的是一个压缩文件,而标签"111"没有提供足够的上下文来确定具体的IT主题。压缩包子文件的文件名称列表只包含"0520",这同样无法提供足够的信息来生成详细的...
"ACE_wrappers11111111"可能指的是ACE库的一个特定版本或者一个包含ACE库相关包装器的项目。由于描述和标签信息重复,没有提供具体细节,我将从一般性的ACE库知识点来展开讨论。 ACE库由Douglas C. Schmidt创建,...
本文将围绕"代码统计工具11111111"这一主题,深入探讨这类工具的功能、重要性以及如何使用。 首先,代码统计工具的主要功能包括计算代码行数、识别不同类型的代码(如注释、空行、实际代码行等)、分析代码复杂度和...
【标题】"hy的javaweb11111111" 提示我们这是一个与JavaWeb相关的项目,可能是某个用户的个人学习项目或者是教学案例。JavaWeb是指使用Java技术进行Web应用开发的一系列技术和框架的集合,包括Servlet、JSP、...
串口调试助手串口调试助手串口调试助手串口调试助手
标题“LED点阵动画11111111”暗示了这个项目是关于使用LED点阵显示屏制作连续出现的“1”的动画效果。在IT领域,LED点阵是一种常用的显示技术,通常由多个LED灯组成,通过控制每个LED灯的状态来显示文字、图像或动画...
标题中的“onnx部署代码11111111”指的是使用ONNX(Open Neural Network Exchange)模型进行部署的代码示例。ONNX是一种开放的模型交换格式,它允许开发者在不同的深度学习框架之间共享模型,如PyTorch、TensorFlow...
标题 "11111111infer.zip" 暗示这可能是一个与机器学习或深度学习相关的压缩包,其中包含用于推理(inference)的文件。描述中同样重复了压缩包的名字,并没有提供额外的信息,因此我们将依赖标签和文件名来推测其中...
【标题】: "3.3实验组网综合11111111" 这个标题可能是指一个网络实验项目,重点在于网络的组建和综合应用。在IT领域,实验组网通常涉及网络设备配置、拓扑设计、协议设置等多方面知识,可能涵盖了局域网(LAN)、...
"模电课后习题答案11111111"这个压缩包文件很可能是针对这门课程的一份详尽的习题解答集,旨在帮助学生理解和掌握课程中的关键知识点。 在模拟电子技术的学习中,主要涉及以下几个重要领域: 1. **基础概念**:...
标题中的“Jlink安装包-11111111”表明这是一个与Jlink相关的安装程序,可能包含了用于编程、调试或者更新Jlink设备的软件。Jlink是SEGGER公司出品的一种广受欢迎的嵌入式系统调试工具,它允许开发者通过USB、以太网...
标题"数据整理的一份数据11111111"表明这是一个关于数据整理的项目,可能包含了对某个特定数据集的清洗、转换和分析过程。描述虽然简洁,但暗示了我们关注的是一个与数据处理相关的实践案例。 标签"数据"进一步确认...
标题中的“11111111键盘修改.zip”暗示了这个压缩包可能包含一个用于自定义键盘布局或功能的工具。描述中提到“可以任意修改键盘键位,随意更换”,这表明该软件允许用户根据个人需求调整键盘上各个按键的功能,比如...
【标题】:“在线购物商城11111111”是一个基于jsp、servlet和sqlserver2005技术构建的在线购物平台。这个项目是开发者为了展示如何将这些技术完美融合而创建的,旨在为其他开发人员提供参考和学习。 【描述】:...
标题提到的“pcb最全封装库11111111”显然是一个包含了多种元器件封装的资源集合,对于工程师来说,这样的资源库是十分宝贵的。 描述中特别提到了“stm32f103系列”,这是一个非常流行的微控制器系列,广泛应用于...
【标题】"webtask.rar11111111" 涉及的主要知识点是 Maven 和 JavaWeb 开发,具体包含的是一个未完成的 Maven 项目,这为我们提供了一个学习和实践 Maven 构建 JavaWeb 应用的平台。 在JavaWeb开发中,Maven 是一个...
【中华狮山面试笔记11111111】主要涵盖了Java高级面试的相关知识点,以下将详细解析这些内容。 1. **Java基础** - **数据类型**: 包括基本数据类型(如int, double, char)和引用数据类型(如类、接口、数组)。 ...
"Linux 实验一(11111111)" 本实验的目的是在虚拟机软件中安装和使用 Ubuntu 系统,检查和验证网络环境,并使用相关软件进行远程连接。下面是实验的详细步骤和相关知识点: 虚拟机安装和设置 在实验中,我们使用...
【通原课设资料11111111】这个压缩包文件的标题和描述表明,它包含的是一些关于“通原”课程设计的相关资料。通原,通常指的是计算机科学或信息技术领域的基础课程,可能包括操作系统原理、计算机网络、数据结构与...