要做一个可以展开折叠的树状导航条,到网上看了一些实现,感觉都比较麻烦,js的代码量都不小,我的应用要求不复杂,但是要求树状结构的内容是可以改变的 。所以最后还是自己试着写了一个。
下面是演示代码,你可以按照自己的需求改变div中的内容,动态的生成div部分代码就可以实现tree结构的动态建立。
<html>
<script>
function changevisible(element){
var children = element.parentNode.childNodes;
for(var i= 0; i<children.length;i++){
if(children[i].nodeName == "DIV"){
var className = children[i].className;
if(className == "show"){
element.className="fold";
children[i].className="hidden";
}
else{
element.className="expend";
children[i].className="show";
}
}
}
}
</script>
<style type="text/css">
div.show{
display:block;
width:100%;
background-color:#339966;
}
div.hidden{
display:none;
}
span.fold{
width:20px;
height:20px;
padding:0px 10px 0px 10px;
background-image:url("P1.gif");
background-repeat:no-repeat;
}
span.expend{
width:20px;
height:20px;
padding:0px 10px 0px 10px;
background-image:url("M1.gif");
background-repeat:no-repeat;
}
span.2blank{
width:20px;
}
span.3blank{
width:40px;
}
span.def{
width:20px;
height:20px;
padding:0px 10px 0px 10px;
background-image:url("D.gif");
background-repeat:no-repeat;
}
</style>
<body>
<div id="sidenav">
<div class="show"><span class="fold" onclick="changevisible(this)"> </span>10
<div class="hidden"><span class="2blank"> </span><span class="fold" onclick="changevisible(this)"> </span>20</div>
<div class="hidden"><span class="2blank"> </span><span class="fold" onclick="changevisible(this)"> </span>21</div>
<div class="hidden"><span class="2blank"> </span><span class="fold" onclick="changevisible(this)"> </span>22
<div class="hidden"><span class="3blank"> </span><span class="def"> </span>30</div>
<div class="hidden"><span class="3blank"> </span><span class="def"> </span>31</div>
</div>
</div>
</div>
</body>
</html>
下面是效果演示:
<script> function changevisible(element){ var children = element.parentNode.childNodes; for(var i= 0; i<children.length;i++){ if(children[i].nodename="=" "div"){="" var="" classname="children[i].className;" if(classname="=" "show"){="" element.classname="fold" ;="" children[i].classname="hidden" ;="" }="" else{="" element.classname="expend" ;="" children[i].classname="show" ;="" }="" }="" }="" }<="" script=""> <style type="text/css">div.show{ display:block; width:100%; background-color:#339966;}div.hidden{ display:none;}span.fold{ width:20px; height:20px; padding:0px 10px 0px 10px; background-image:url("P1.gif"); background-repeat:no-repeat; }span.expend{ width:20px; height:20px; padding:0px 10px 0px 10px; background-image:url("M1.gif"); background-repeat:no-repeat;}span.2blank{ width:20px;}span.3blank{ width:40px;}span.def{ width:20px; height:20px; padding:0px 10px 0px 10px; background-image:url("D.gif"); background-repeat:no-repeat;}</style>
(由于展开和收起的图标使用的相对链接,利用改变span的className属性来改变图标,在blog里不方便实用,暂且用+代替原来图表的位置,大家使用的时候可以用你自己的图标代替M1.gif 、P1.gif、D.gif,和你的页面放在一层文件夹下即可)
分享到:
相关推荐
"树型导航条"是一种特殊的导航结构,它模仿了计算机文件系统的树状结构,使用户能够通过展开和折叠的方式查看和访问多层次的菜单。在本资源包中,我们聚焦于使用JavaScript和CSS来实现这种交互式的树型导航条。 ...
本资源“javascript经典特效---多层超酷导航条.rar”聚焦于利用JavaScript实现一个具有多层结构且视觉效果酷炫的导航条,这将极大地提升用户体验。 首先,我们来理解一下“多层”的概念。在网页设计中,多层导航...
为了提高搜索引擎的可见性,导航条的结构应遵循SEO最佳实践,如使用有意义的链接文本,避免使用JavaScript生成导航条,确保搜索引擎能正确爬取和理解网站结构。 10. **性能优化** 考虑到性能,可以缓存导航数据,...
这个例子适用于简单的静态结构,如果导航条是动态生成或者更复杂,可能需要使用到更高级的库,如jQuery或者现代前端框架(如React、Vue、Angular)。 树状导航条是一种组织大量层次化信息的有效方式。它通常由节点...
在这个“树型红色导航”中,红色可能被用作主题色,不仅使导航条突出,还能激发用户的兴趣,增加网站的视觉冲击力。同时,色彩心理学研究表明,红色可以唤起人们的兴奋感,有助于提升用户在网站上的停留时间和互动...
1. **导航条(Navbar)**: Bootstrap的导航条组件提供了一种构建顶部导航菜单的方式。在2.2.1版本中,我们可以使用`.navbar`、`.navbar-inner`和`.nav`类来构建基础结构。 2. **下拉菜单(Dropdowns)**: Bootstrap...
jQuery.tree.js是基于jQuery库的一个插件,它利用JavaScript的事件驱动和DOM操作能力,实现了动态生成和管理树形导航菜单的功能。该插件不仅提供了丰富的配置选项,还支持各种交互效果,如点击展开/折叠节点、拖放...
- `二级下拉框联动.txt`、`n级联动下拉框.txt` 和 `下拉列表框的颜色和CSS样式.txt` 介绍了如何使用JavaScript实现下拉框的联动效果,以及如何结合CSS自定义下拉框样式,这对于构建复杂的表单和选择结构非常有用。...
- `index20110925_mini.js`:可能是网站特定功能的JavaScript脚本,比如处理导航条的响应式行为或动画效果。 - `main.png` 和 `repeatX.png`:这两张图片可能是网站的背景图或导航菜单中的图标,`repeatX.png`通常...
这种特效通过JavaScript库jQuery实现,结合CSS样式来达到动态、美观的效果。在网页设计中,它能帮助用户更直观地理解和浏览复杂的数据。 jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画...
- 树形菜单是一种以树状结构展现数据的用户界面元素,常用于文件管理器、网站导航或层级结构的展示。它允许用户通过展开和折叠节点来浏览层次化的信息。 - 实现方式:通常使用HTML、CSS和JavaScript(如jQuery)...
在网页设计和开发中,"树形下拉控件"是一种常见的交互元素,它结合了树状结构和下拉列表的功能,为用户提供了一种高效、直观的方式来浏览和选择层次化的数据。这种控件通常用于展示有层级关系的数据,如目录结构、...
CSS 类则是用于快速添加样式,例如按钮、表单、导航条等;JavaScript 插件则提供了交互功能,如模态框、下拉菜单、滚动条等。 接下来,为了创建树形图,你可以使用第三方库,如 jQuery UI 的 Treeview 插件,或者专...
例如,Bootstrap的导航条组件可以快速创建水平或垂直菜单,而jQuery UI的draggable和droppable功能则可以实现拖放式菜单编辑。 为了实现这些功能,【菜单框架】可能包含以下文件: - HTML模板文件:定义菜单的基本...
安装dtree非常简单,首先解压dtree源码包`dtree.zip`,其中包含了必要的资源文件,如图像文件、API文档、CSS样式表、JavaScript脚本和示例文件。将这些文件放置在项目的webroot目录下,然后在需要使用dtree的HTML或...
每个节点可能包含子节点,形成树状结构。这可以通过JSON对象或自定义的数据结构实现。例如: ```json { "name": "根节点", "children": [ { "name": "子节点1", "children": [ // 子子节点... ] }, { ...
树形菜单是一种模拟真实世界中树状结构的数据表示方式,它由节点(Node)组成,每个节点可以有零个或多个子节点。在网页中,这些节点通常以折叠或展开的形式显示,用户可以通过点击节点来展示或隐藏其子节点。 二、...
在Bootstrap中,下拉菜单是导航条(navbar)或按钮组(button group)常见的一部分,通常用于节省空间并提供多个操作选项。 下拉选择树的实现通常基于JavaScript库,如jQuery,以及可能的插件,例如Bootstrap ...
它简化了树状结构的展现和管理,能够帮助用户高效地浏览层级数据。通过理解和掌握DirectoryTree插件的使用,开发者可以提升网站或应用的用户体验,特别是对于需要展示多层分类或目录的场景。在实际项目中,根据需求...
在HTML中,所有的元素节点都是以树状结构存在的,节点之间具有层级关系。通过Javascript中的DOM操作,可以遍历这些节点,找到相应的父节点或子节点,从而实现对节点的动态操作。比如,在鼠标悬停效果中,当鼠标移动...