`
txf2004
  • 浏览: 7067739 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JS树形菜单

阅读更多
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>树形菜单2</title>
<style type="text/css">
<!--
.headtd1 { background: #00A4E1; border: 2px outset; border-color: #00BBFF #0077FF #0077FF #00BBFF; cursor: hand; font-size: 9pt}
.headtd2 { background: #20C1FF; border: 2px outset; border-color: #60D3FF #0077FF #0077FF #60D3FF; cursor: hand; font-size: 9pt}
.bodytd { background: #99CCFF; border: 2px outset; border-color: #B0D8FF #0077FF #0077FF #B0D8FF; font-size: 9pt}
-->
</style>
<script language="JavaScript">
scores = new Array(20);
var numTotal=0;NS4 = (document.layers) ? 1 : 0;IE4 = (document.all) ? 1 : 0;ver4 = (NS4 || IE4) ? 1 : 0;
if (ver4) { with (document) { write("<STYLE TYPE='text/css'>");
if (NS4) { write(".parent {position:absolute; visibility:visible}");
write(".child {position:absolute; visibility:visible}");
write(".regular {position:absolute; visibility:visible}")
}
else { write(".child {display:none}") }
write("</STYLE>"); }}function getIndex(el)
{ ind = null; for (i=0; i<document.layers.length; i++) { whichEl = document.layers[i];
if (whichEl.id == el) { ind = i;
break; } } return ind;}function arrange() { nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height; for (i=firstInd+1; i<document.layers.length; i++) { whichEl = document.layers[i];
if (whichEl.visibility != "hide") { whichEl.pageY = nextY; nextY += whichEl.document.height; } }}function initIt(){ if (!ver4) return; if (NS4) { for (i=0; i<document.layers.length; i++) { whichEl = document.layers[i]; if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide"; } arrange(); } else { divColl = document.all.tags("DIV"); for (i=0; i<divColl.length; i++) { whichEl = divColl(i); if (whichEl.className == "child") whichEl.style.display = "none"; } }}function expandIt(el) { if (!ver4) return; if (IE4) { whichEl1 = eval(el + "Child"); for(i=1;i<=numTotal;i++){ whichEl = eval(scores[i] + "Child"); if(whichEl!=whichEl1) { whichEl.style.display = "none"; } } whichEl1 = eval(el + "Child"); if (whichEl1.style.display == "none") { whichEl1.style.display = "block"; } else { whichEl1.style.display = "none"; } } else { whichEl = eval("document." + el + "Child"); for(i=1;i<=numTotal;i++){ whichEl = eval("document." + scores[i] + "Child"); if(whichEl!=whichEl1) { whichEl.visibility = "hide"; } } if (whichEl.visibility == "hide") { whichEl.visibility = "show"; } else { whichEl.visibility = "hide"; } arrange(); }}onload = initIt;
</script>
<script language="JavaScript">
<!--
//该函数在调用过程中只需要在将要点击的单元格内的onclick事件中调用showme函数即可
//function showme(obj1, obj2)该函数主要为使点击的对象高亮度显示,并调用moveme函数,参数obj1为母体即<div>标签的id,obj2为点击对象本身
//function moveme(obj)该函数判断单元的移动,并调用相应的函数处理,obj参数为母体
//function moveup(obj,objtop)该函数使一个单元向上移动,参数obj为母体,objtop为母体的本身最高高度
//function movedown(obj,objbuttom)该函数使一个单元向下移动,参数obj为母体,objbuttom为母体的本身最低高度
var headHeight = 22;//每个标题的高度
var bodyHeight = 160;//母体高度
var objcount = 6;//项目的个数,要改变了项目的个数别忘了该这个东西
var step = 6;//移动速度(请确认可以被'bodyHeight-headHeight'整除,当前的设定可选速度为1,2,3,6,23,138)
var moving = false;//是否有移动的项目
function showme(obj1, obj2)
{
//以下循环为改变标题的背景颜色
if (moving)
return;
moving = true;
for(i=0;i<document.all.tags("td").length;i++)
if (document.all.tags("td")[i].className.indexOf('headtd') == 0)
document.all.tags("td")[i].className = 'headtd1';
obj2.className = 'headtd2';
moveme(obj1);
}
function moveme(obj)
{
idnumber = parseInt(obj.id.substr(4));
objtop = headHeight * (idnumber - 1);
objbuttom = bodyHeight + headHeight * (idnumber - 2);
currenttop = parseInt(obj.style.top);
if (currenttop >= objbuttom)
{
//检验出每一个应该向上移动的层
countid = 1;
for(i=0;i<document.all.tags("div").length;i++)
if (document.all.tags("div")[i].id == 'item'+countid+'body')
{
obj = document.all.tags("div")[i];
objtop = headHeight * (countid - 1);
if (countid == idnumber)
{
moveup(obj,objtop,false);
break;
}
else
moveup(obj,objtop,true);
countid++;
}
}
else if ((currenttop <= objtop) && (idnumber < objcount))
{
//检验出每一个应该向下移动的层
idnumber++;
countid = objcount;
for(i=document.all.tags("div").length-1;i>=0;i--)
if (document.all.tags("div")[i].id == 'item'+countid+'body')
{
obj = document.all.tags("div")[i];
objbuttom = bodyHeight + headHeight * (countid - 2);
if (countid == idnumber)
{
movedown(obj,objbuttom,false);
break;
}
else
movedown(obj,objbuttom,true);
countid--;
}
}
}
function moveup(obj,objtop,ismove)
{
currenttop = parseInt(obj.style.top);
if (currenttop > objtop)
{
obj.style.top = currenttop - step;
setTimeout('moveup('+obj.id+','+objtop+','+ismove+')',1)
return;
}
moving = ismove;
}
function movedown(obj,objbuttom,ismove)
{
currenttop = parseInt(obj.style.top);
if (currenttop < objbuttom)
{
obj.style.top = currenttop + step;
setTimeout('movedown('+obj.id+','+objbuttom+','+ismove+')',1)
return;
}
moving = ismove;
}
// -->
</script>
</head>
<body>
<!--改改这个div(mainboard)的height,加一个项目当然要把它的值加22了,减一个项目当然就是减22了//-->
<div id="mainboard" style="position:absolute; left:2px; top:2px; width:120px; height:270px; z-index:3; overflow: hidden; background: #0099FF;" onClick="">
<div id="item1body" style="position:absolute; left:0; top:0; width:120px; height:160px; z-index:1; overflow: hidden">
<table width="100%" border="0" height="100%" cellpadding="2" cellspacing="0">
<tr>
<td id="item1head" height="20" class="headtd2" onClick="showme(item1body,this)">
<div align="center">工作室</div>
</td>
</tr>
<tr>
<td class="bodytd">
<div id='KB1Parent' >
<a href="#" onClick="expandIt('KB1');">
<IMG SRC='http://img.alixixi.com/icon_indextool.gif' BORDER=0>分类一</a></div>
<div id='KB1Child' >
<a href='time1.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0001</a>
<a href='time2.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0002</a>
<a href='time8.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0003</a>
</div>
<div id='KB2Parent' >
<a href="#" onClick="expandIt('KB2');">
<IMG SRC='http://img.alixixi.com/icon_indextool.gif' BORDER=0>分类二</a></div>
<div id='KB2Child' class='child'>
<a href='time1.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0001</a>
<a href='time2.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0002</a>
<a href='time8.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0003</a></div>
<div id='KB3Parent' ><a href="#" onClick="expandIt('KB3');">
<IMG SRC='http://img.alixixi.com/icon_indextool.gif' BORDER=0>分类三</a></div><div id='KB3Child' class='child'>
<a href='time1.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0001</a>
<a href='time2.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0002</a>
<a href='time8.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0003</a></div>
<div id='KB4Parent' ><a href="#" onClick="expandIt('KB4');">
<IMG SRC='http://img.alixixi.com/icon_indextool.gif' BORDER=0>分类四</a></div><div id='KB4Child' class='child'>
<a href='time1.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0001</a>
<a href='time2.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0002</a>
<a href='time8.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0003</a></div>
<div id='KB5Parent' >
<a href="#" onClick="expandIt('KB5'); return false">
<IMG SRC='http://img.alixixi.com/icon_indextool.gif' BORDER=0>分类五</a></div><div id='KB5Child' class='child'>
<a href='time1.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0001</a>
<a href='time2.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0002</a>
<a href='time8.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0003</a></div>
<div id='KB6Parent' ><a href="#" onClick="expandIt('KB6'); return false">
<IMG SRC='http://img.alixixi.com/icon_indextool.gif' BORDER=0>分类六</a></div><div id='KB6Child' class='child'>
<a href='time1.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0001</a>
<a href='time2.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0002</a>
<a href='time8.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0003</a></div>
</td>
</tr>
</table>
</div>
<div id="item2body" style="position:absolute; left:0px; top:160; width:120; height:160; z-index:2; overflow: hidden">
<table width="100%" border="0" height="100%" cellpadding="2" cellspacing="0">
<tr>
<td id="item2head" height="20" class="headtd1" onClick="showme(item2body,this)">
<div align="center">邮箱</div>
</td>
</tr>
<tr>
<td class="bodytd">
<div id='KB7Parent' >
<a href="#" onClick="expandIt('KB7');">
<IMG SRC='http://img.alixixi.com/icon_indextool.gif' BORDER=0>分类一</a></div>
<div id='KB7Child' >
<a href='time1.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0001</a>
<a href='time2.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0002</a>
<a href='time8.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0003</a>
</div>
<div id='KB8Parent' >
<a href="#" onClick="expandIt('KB8');">
<IMG SRC='http://img.alixixi.com/icon_indextool.gif' BORDER=0>分类二</a></div>
<div id='KB8Child' class='child'>
<a href='time1.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0001</a>
<a href='time2.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0002</a>
<a href='time8.htm' target='_target'> <IMG SRC='http://img.alixixi.com/li01.gif' BORDER=0>0003</a></div>
<SCRIPT>
numTotal=8;
scores[1]='KB1';
scores[2]='KB2';
scores[3]='KB3';
scores[4]='KB4';
scores[5]='KB5';
scores[6]='KB6';
scores[7]='KB7';
scores[8]='KB8'
</SCRIPT>
</td>
</tr>
</table>
<p class="headtd1"> </p>
</div>
<div id="item3body" style="position:absolute; left:0; top:182; width:120px; height:160; z-index:3">
<table width="100%" border="0" height="100%" cellpadding="2" cellspacing="0">
<tr>
<td id="item3head" height="20" class="headtd1" onClick="showme(item3body,this)">
<div align="center">Q Q</div>
</td>
</tr>
<tr>
<td class="bodytd">
<div align="center">37146743</div>
</td>
</tr>
</table>
</div>
<div id="item4body" style="position:absolute; left:0; top:204; width:120px; height:160; z-index:4; overflow: hidden">
<table width="100%" border="0" height="100%" cellpadding="2" cellspacing="0">
<tr>
<td id="item4head" height="20" class="headtd1" onClick="showme(item4body,this)">
<div align="center">朋友</div>
</td>
</tr>
<tr>
<td class="bodytd">
<div align="center">
<p>小一、旁腾
</p>
</div>
</td>
</tr>
</table>
</div>
<div id="item5body" style="position:absolute; left:0; top:226; width:120px; height:160; z-index:4; overflow: hidden">
<table width="100%" border="0" height="100%" cellpadding="2" cellspacing="0">
<tr>
<td id="item5head" height="20" class="headtd1" onClick="showme(item5body,this)">
<div align="center">陌生人</div>
</td>
</tr>
<tr>
<td class="bodytd">
<div align="center">
<p>小虎
AAP

小伙伴
小一</p>
</div>
</td>
</tr>
</table>
</div>
<!--如果要添加一个子项目请拷贝一份下面的代码并放于后面。干什么,不要拷贝我了,是下面的//-->
<div id="item6body" style="position:absolute; left:0; top:248; width:120px; height:160; z-index:4; overflow: hidden">
<table width="100%" border="0" height="100%" cellpadding="2" cellspacing="0">
<tr>
<td id="item6head" height="20" class="headtd1" onClick="showme(item6body,this)">
<div align="center">版本号</div>
</td>
</tr>
<tr>
<td class="bodytd">
<div align="center">
<p>版本号:1.1

封锁了移动过
程中的点击事件
这样不会出现抖
动现象了。
</div>
</td>
</tr>
</table>
</div>
<!--哎哎,别往下拷贝了,到我得上面为止了,拷贝到代码放到我后面吧
哦,对了别忘了改几个id呀,div的id,td的id,还有onclick事件中的对象id
id的规则是div中item+数字+body。td中item+数字+head
还有div的style中的top值呀,是多少,上面这个div的top加上22就是了
别忘了按照body下的提示改改mainboard的height呀。还有给教本中的objcount数量改为你现在项目的个数
别傻了,快点行动吧,要不赶不上饭点了//-->
</div>
</body>
</html>
分享到:
评论

相关推荐

    (推荐)超级漂亮的JS树形菜单

    在标签中,“JS树形菜单”、“JavaScript树形菜单”和“树形菜单”都是对这个技术的关键词描述,强调其基于JavaScript的实现。JavaScript作为客户端脚本语言,使得树形菜单能够在用户的浏览器端动态生成和操作,无需...

    好看实用js树形菜单

    以下是一个简单的JavaScript树形菜单的实现示例: ```javascript function renderMenu(data, parentEl) { for (let item of data) { let li = document.createElement('li'); let a = document.createElement('a...

    js树形菜单

    "js树形菜单"是使用JavaScript编程语言来实现这种功能的技术。JavaScript作为一种强大的客户端脚本语言,能够在用户与网页之间提供实时的交互,使得树形菜单不仅具有视觉吸引力,而且操作起来非常直观。 实现js树形...

    javascript 树形菜单

    总的来说,构建JavaScript树形菜单涉及的技术包括HTML结构设计、CSS样式控制、JavaScript DOM操作、事件处理、数据结构和算法(如遍历树形结构)、以及可能的异步加载和动画效果。通过这些技术的组合,我们可以创建...

    javascript树形菜单

    javascript树形菜单

    JavaScript 树形菜单

    总的来说,JavaScript树形菜单是通过DOM操作和事件处理来实现的。在实际项目中,可能会结合使用前端框架如React、Vue或Angular,以及第三方库如jQuery UI或jsTree,以简化开发并提供更丰富的功能。在压缩包中的"树形...

    JS树形菜单集合(最全)

    JavaScript(简称JS)是一种轻量级的脚本语言,广泛应用于网页和网络应用开发,而树形菜单在前端UI设计中扮演着重要角色,尤其在数据层级结构展示时。JS树形菜单允许用户以交互方式浏览多级数据,提供了一种高效、...

    js 树形菜单

    总结来说,"js树形菜单"是利用JavaScript编程实现的一种交互式的多级导航工具,而"DHTMLX Tree"是一个强大的库,为开发者提供了创建和管理树形菜单的便捷工具。通过理解和掌握这些知识,可以有效地构建高效、易用的...

    js树形菜单各式各样特效

    总结来说,JavaScript树形菜单特效是网页交互设计中的一个重要元素,它通过动态效果和多种功能增强用户对层级数据的操控体验。开发者可以根据项目需求,选择合适的实现方式和工具,打造个性化的树形菜单。

    一个js树形菜单

    综上所述,"一个js树形菜单"项目是一个学习和实践JavaScript核心技能的好例子,它涵盖了数据结构、DOM操作、事件处理、CSS样式等多个方面,对提升Web开发能力大有裨益。通过研究项目中的代码和实现方式,开发者不仅...

    JS树形菜单源代码下载

    JS树形菜单源代码下载,JS树形菜单源代码下载JS树形菜单源代码下载JS树形菜单源代码下载JS树形菜单源代码下载JS树形菜单源代码下载JS树形菜单源代码下载JS树形菜单源代码下载JS树形菜单源代码下载JS树形菜单源代码...

    收藏的好看的项目经常用的js树形菜单

    首先,树形菜单的核心是JavaScript(简称js),这是一种广泛使用的客户端脚本语言,它在网页中负责处理动态交互效果。JavaScript库和框架如jQuery、React、Vue等提供了丰富的功能,包括创建树形菜单。 标题中的...

    js树形菜单,完全兼容

    实现JavaScript树形菜单的方法多种多样,包括使用原生JavaScript、jQuery插件,或是专门的前端框架如React、Vue等。面向对象的编程方式是其中一种常见的实现策略,它将数据结构(节点)和操作(展开、折叠、遍历)...

    超多类型的JS 树形菜单

    JS树形菜单是很常用的JS特效代码,常用在管理软件当中,但是一套树形菜单已经不能满足需求,所以如果能有一套比较全面的树形菜单JS特效代码,将会非常方便,下面懒人萱将超全的JS树形菜单(dhtmlxTree)共享出来,...

    JS树形菜单控件-代码-示例

    标题与描述概述的知识点是关于JavaScript(JS)树形菜单控件的代码示例,强调其简单性和易用性。这种控件在Web开发中非常常见,用于展示具有层次结构的数据,例如文件系统、组织结构或任何有层级关系的信息。 ### ...

    ASP.NET AJAX 无限级 JS 树形菜单

    - **HTML 结构**:页面使用了标准的 HTML5 结构,并引入了必要的外部 JavaScript 文件(`dtree.js` 和 `jquery-1.4.1.js`),以便实现树形菜单的功能。 - **JavaScript 代码**: - 初始化树对象 `d`,使用 `dTree...

    JS后台管理树形菜单代码.rar

    首先,我们来详细了解一下JavaScript树形菜单的基本概念。树形菜单是一种常见的用户界面元素,它通过节点和子节点的层次结构来表示数据。每个节点可以有零个或多个子节点,并且可以通过展开或折叠来显示或隐藏其子...

Global site tag (gtag.js) - Google Analytics